[๋ฐฑ์ค/python] 9095๋ฒ : 1, 2, 3 ๋ํ๊ธฐ
๋ฌธ์
์ ์ 4๋ฅผ 1, 2, 3์ ํฉ์ผ๋ก ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ์ด 7๊ฐ์ง๊ฐ ์๋ค. ํฉ์ ๋ํ๋ผ ๋๋ ์๋ฅผ 1๊ฐ ์ด์ ์ฌ์ฉํด์ผ ํ๋ค.
- 1+1+1+1
- 1+1+2
- 1+2+1
- 2+1+1
- 2+2
- 1+3
- 3+1
์ ์ n์ด ์ฃผ์ด์ก์ ๋, n์ 1, 2, 3์ ํฉ์ผ๋ก ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ์ ์ n์ด ์ฃผ์ด์ง๋ค. n์ ์์์ด๋ฉฐ 11๋ณด๋ค ์๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค, n์ 1, 2, 3์ ํฉ์ผ๋ก ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
์ ๋ต
import sys
T = int(sys.stdin.readline())
dp = [0]*11
dp[1] = 1
dp[2] = 2
dp[3] = 4
for i in range(T):
n = int(sys.stdin.readline())
for i in range(4, n+1):
dp[i] = dp[i-1] + dp[i-2] + dp[i-3]
print(dp[n])
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ๋ก ์ ํ์์ ์ด์ฉํ๋ค.
์ ๋ฌธ์ ์์ ์ ํ์์ ์๋์ ๊ฐ๋ค.
dp[i] = dp[i-1] + dp[i-2] + dp[i-3]
dp์๋ ์ธ๋ฑ์ค ์ซ์๋ฅผ 1, 2, 3์ ํฉ์ผ๋ก ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ์ ์ฅํ๋ค.
์๋ฅผ ๋ค์ด 5์ ๊ฒฝ์ฐ, 4 + 1, 3 + 2, 2 + 3 ์ผ๋ก ๋ํ๋ผ ์ ์์ผ๋ฏ๋ก
4, 3, 2๋ฅผ ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ์๋ค์ ๋ํ๋ฉด ๋๋ค.
'๐์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/python] 18111๋ฒ : ๋ง์ธํฌ๋ํํธ (0) | 2021.08.07 |
---|---|
[๋ฐฑ์ค/python] 1244๋ฒ : ์ค์์น ์ผ๊ณ ๋๊ธฐ (0) | 2021.08.07 |
[๋ฐฑ์ค/python] 1463๋ฒ : 1๋ก ๋ง๋ค๊ธฐ (0) | 2021.07.29 |
[๋ฐฑ์ค/python] 1992๋ฒ : ์ฟผ๋ํธ๋ฆฌ (0) | 2021.05.12 |
[๋ฐฑ์ค/python] 11866๋ฒ : ์์ธํธ์ค ๋ฌธ์ 0 (0) | 2021.05.12 |