Problem
๋ฌธ์
๋ฌธ์
์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ผ๊ฐํ์ด ๋์ ๋ชจ์์ผ๋ก ๋์ฌ์ ธ ์๋ค. ์ฒซ ์ผ๊ฐํ์ ์ ์ผ๊ฐํ์ผ๋ก ๋ณ์ ๊ธธ์ด๋ 1์ด๋ค. ๊ทธ ๋ค์์๋ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ผ๋ก ์ ์ผ๊ฐํ์ ๊ณ์ ์ถ๊ฐํ๋ค. ๋์ ์์ ๊ฐ์ฅ ๊ธด ๋ณ์ ๊ธธ์ด๋ฅผ k๋ผ ํ์ ๋, ๊ทธ ๋ณ์ ๊ธธ์ด๊ฐ k์ธ ์ ์ผ๊ฐํ์ ์ถ๊ฐํ๋ค.
ํ๋๋ฐ ์์ด P(N)์ ๋์ ์ ์๋ ์ ์ผ๊ฐํ์ ๋ณ์ ๊ธธ์ด์ด๋ค. P(1)๋ถํฐ P(10)๊น์ง ์ฒซ 10๊ฐ ์ซ์๋ 1, 1, 1, 2, 2, 3, 4, 5, 7, 9์ด๋ค.
N์ด ์ฃผ์ด์ก์ ๋, P(N)์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ
์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ
์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , N์ด ์ฃผ์ด์ง๋ค. (1 โค N โค 100)
์ถ๋ ฅ
๊ฐ ํ
์คํธ ์ผ์ด์ค๋ง๋ค P(N)์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
2
6
12
Plain Text
๋ณต์ฌ
์์ ์ถ๋ ฅ 1
3
16
Plain Text
๋ณต์ฌ
Code
ย #1
Idea
์์ด ๊ท์น์ฑ์ ์ฐพ์๋ณด๋ฉด ์ฝ๊ฒ ํ๋ฆฌ๋ ๋ฌธ์
1 1 1 2 2 3 4 5 7 9
๊ทธ๋ฆผ์ ๋ณด๊ณ ๋ถ์ํด๋ณด๋ฉด ๊ฐ ์ฑ๋ฆฝํ๋ค.
๊น์ง๋ ์ด๊ธฐ๊ฐ์ผ๋ก ์ค์ ์ ํ๊ณ dp ๋ก ๋ฐ๋ณต๋ฌธ์ ๋๋ ค์ค๋ค.
ย Code
import sys
read = sys.stdin.readline
t = int(read())
dp = [0] * (101)
dp[0] = 0
dp[1] = 1
dp[2] = 1
dp[3] = 1
dp[4] = 2
dp[5] = 2
for _ in range(t):
n = int(read())
for i in range(6, n + 1):
dp[i] = dp[i - 5] + dp[i - 1]
print(dp[n])
Python
๋ณต์ฌ