2021. 5. 31. 15:46ใ๐ป ๊ฐ๋ฐ/Algorithm
https://www.acmicpc.net/problem/9095
ํน์ ์ซ์๋ฅผ ์ฃผ์ด์ง ์ ์๋ค์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ ๊ฒฝ์ฐ์์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ .
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ณธ๋ฌธ์ ์ด๋ค.
์ ์ 4๋ฅผ 1,2,3์ ํฉ์ผ๋ก ๋ํ๋ด๋ ๋ชจ๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
์ ์ n์ ์์์ด๋ฉฐ 11๋ณด๋ค ์๋ค๊ณ ์ฃผ์ด์ก์ผ๋ฏ๋ก 1๋ถํฐ ๊ตฌํด๋ณธ๋ค๋ฉด,
1์ ๋ํ๋ด๊ธฐ ์ํด์๋ 1๋ง ํ์ํ๊ธฐ๋๋ฌธ์ => 1๊ฐ์ง
2๋ฅผ ๋ํ๋ด๊ธฐ ์ํด์๋ (1+1), (2) => 2๊ฐ์ง
3์ ๋ํ๋ด๋ ค๋ฉด (1+1+1), (1+2), (2+1), (3) => 4๊ฐ์ง
์์ ์์ ์ฃผ์ด์ง 4๋ฅผ ๋ํ๋ด๊ธฐ ์ํด์๋ ์์ 1~3๊น์ง์ ๊ฐ์ง์๋ฅผ ๋ชจ๋ ํฉํ๋ฉด ๋๋ค.
5์ ๋ํ๋ด๋ณด๋ฉด,
(1,1,1,1,1), (1,1,1,2), (1,1,2,1), (1,2,1,1,), (2,1,1,1), (1,1,3),
(1,3,1), (3,1,1), (1,2,2), (2,2,1), (2,1,2), (2,3), (3,2) => 13๊ฐ์ง
13 = 2+4+7๋ก๋ถํฐ ๊ณ์ฐ๋๊ฒ. ์ด๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ์ ํ์์ ์ฌ์ฉํ๋ค.
n = int(input())
def solution(x):
if x == 1:
return 1
elif x == 2:
return 2
elif x == 3:
return 4
else:
return solution(x-1) + solution(x-2) + solution(x-3)
for i in range(n):
x = int(input())
print(solution(x))
'๐ป ๊ฐ๋ฐ > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํํ Python (์นด์นด์ค ๊ธฐ์ถ) (0) | 2021.09.07 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํ์ฑํ ๋ฐฉ (Python) (0) | 2021.08.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋๋จธ์ง ํ ์ (Python) (0) | 2021.06.24 |
๋ฐฑ์ค 10826: ํผ๋ณด๋์น ์ 4 (DP) (0) | 2021.05.31 |
[์๋ฃ๊ตฌ์กฐ] ๋ฐํฌ(Deque)์ดํดํ๊ธฐ (0) | 2021.05.20 |