Bibi's DevLog ๐ค๐
[๋ฐฑ์ค 3004] ์ฒด์คํ ์กฐ๊ฐ ๋ณธ๋ฌธ
ํ๋ก๊ทธ๋๋ฐ/์๊ณ ๋ฆฌ์ฆ ํ์ด Swift
[๋ฐฑ์ค 3004] ์ฒด์คํ ์กฐ๊ฐ
๋น๋น bibi 2022. 9. 30. 12:08- ๋๋ฌดํ์ n๋ฒ ์๋ฅผ ๋ ์ต๋ ๋ช ์กฐ๊ฐ ์ด ๋๋์ง ์ถ๋ ฅํ๋ ๋ฌธ์
- ํฌ๊ฒ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ตฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ท์น์ ์ฐพ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
- ์๊ฐ์ ํ์ ๊ฑธ๋ฆด๊น ๋ด ๊ท์น์ ์ฐพ๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ๋ค.
- ๊ทผ๋ฐ ๊ฒฐ๊ตญ ์ฌ์ฉํ ๊ฒ reduce๋ผ์.. ์ฝ๊ฒ ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ ๊ทผํ ๊ฑธ ์ถ๊ธฐ๋. (์๊ฐ์ ํ์ ๊ฑธ๋ฆฌ์ง ์๋ ๋ฏ - n์ ์ต๋๊ฐ์ด 100์ด๋ผ)
- ๊ท์น
- 1 : 2
- 2 : 4
- 3 : 6
- 4 : 9
- 5 : 12
- 6 : 16
- 7 : 20
- 8 : 25
- 9 : 30
- 10 : 36
ํ์ด1 (๋์ ํ์ด)
- 1์ผ๋ ์ด๊ธฐ๊ฐ์ด 2, ๋๋จธ์ง๋ +2 +2 +3 +3 +4 +4 .. ํจํด
- n์ด ํ์์ผ ๋๋ ์ด๊ธฐ๊ฐ 2์, 2๋ถํฐ (n + 1) / 2 ๊น์ง ๋ํ ๊ฐ์ ๊ณฑํ๊ธฐ 2
- n=7 โ 2 + (2โฆ4) * 2 = 20
- n์ด ์ง์์ผ ๋๋ ์ด๊ธฐ๊ฐ 2์, 2๋ถํฐ n / 2 ๊น์ง ๋ํ ๊ฐ์ ๊ณฑํ๊ธฐ 2, ๊ทธ๋ฆฌ๊ณ (n / 2) + 1 ์ ๋ํจ
- n=8 โ 2 + (2โฆ4) * 2 + 5 = 25
- ๋ค๋ง ์ด ๋ฐฉ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ..
- ๋ฒ์ ์ฐ์ฐ์ ๋๋ฌธ์ n์ด 1์ผ ๋์ 2์ผ ๋๋ ์ง์ ์ฒ๋ฆฌ ํ์
- ๋ฐ๋ณต๋ฌธ์ ํผํ๋ ค๊ณ ๊ณต์์ ๊ตฌํด๋ณด๋ ค ํ์ง๋ง ๊ฒฐ๊ตญ reduce๋ฅผ ์ฌ์ฉํ์ใ ใ
let cut = Int(readLine()!)!
var answer = 0
if cut == 1 {
answer = 2
} else if cut == 2 {
answer = 4
} else {
if cut % 2 == 1 {
let cutHalf = (cut + 1) / 2
answer = 2 + (2...cutHalf).reduce(0, +) * 2
} else {
let cutHalf = cut / 2
answer = 2 + (2...cutHalf).reduce(0, +) * 2 + (cut / 2 + 1)
}
}
print(answer)
ํ์ด 2 ( ์ ๋ต์ฝ๋ ์ค ๋ฐ์ท )
์๋์ ๊ฐ์ด ์ ๋ง ๊ณต์์ ์ฐพ์ ๊ณ์ฐํ์ ๋ถ๋ค๋ ์์๋ค. ๐
๋ฐ๋ณต๋ฌธ์ ์ฐ์ง ์์ผ๋ฏ๋ก ์๊ฐ๋ณต์ก๋๋ฉด์์ ์ ๋ฆฌํ๋ค.
var x = Int(readLine()!)!
print(((x/2)+1)*(x-(x/2)+1))
let input = Int(readLine()!)!
if input % 2 == 0 {
let a = input / 2 + 1
print(a * a)
} else {
let a = (input + 1) / 2 + 1
print(a * a - a)
}
'ํ๋ก๊ทธ๋๋ฐ > ์๊ณ ๋ฆฌ์ฆ ํ์ด Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 3047] ABC (Swift) (0) | 2022.10.12 |
---|---|
[๋ฐฑ์ค 3035] ์ค์บ๋ (Swift) (1) | 2022.10.05 |
[๋ฐฑ์ค 2966] ์ฐ๊ธฐ (Swift) (0) | 2022.09.29 |
[๋ฐฑ์ค 2953] ๋๋ ์๋ฆฌ์ฌ๋ค (Swift) (0) | 2022.09.29 |
[๋ฐฑ์ค 2947] ๋๋ฌด ์กฐ๊ฐ (0) | 2022.09.28 |