๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/15988)
<1, 2, 3 ๋ํ๊ธฐ 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์ ์์์ด๋ฉฐ 1,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค, n์ 1, 2, 3์ ํฉ์ผ๋ก ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ์๋ฅผ 1,000,000,009๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค.
๋ฌธ์ ํ์ด
- my solution
if __name__ == '__main__' :
T=int(input())
case=[]
for i in range(T): # ํ
์คํธ ์ผ์ด์ค
case.append(int(input()))
dp=[1,2,4]
for i in range(3,max(case)):
dp.append((dp[i-1]+dp[i-2]+dp[i-3])%1000000009)
for i in case:
print(dp[i-1])
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ๋ก ๊ท์น๋ง ์ฐพ์ผ๋ฉด ์ด๋ ต์ง ์์ ๋ฌธ์ ์๋ค.
๊ท์น์ ์์ 3 ์์ ํฉ์ ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ๋ํ๋ฉด ๋๋ ๊ฒ์ด์๋ค.
1,000,000,009๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ผ๊ณ ํ์ฌ ์ฒ์์ print ํ ๋ ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ์๋๋ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ๋ฐ์ํ์๋ค.
๊ทธ ํ ๊ฐ ์์ ํฉ์ ๋ฐฉ๋ฒ์ ๊ตฌํ ๋ 1,000,000,009๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ ์ฅํด์ค ํ ๊ทธ๋ฅ ์ถ๋ ฅํ์๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค.
์๊ฐ๐ค
Silver III์ 9095๋ฒ ๋ฌธ์ ์ ์์ฃผ ๋น์ทํ์ฌ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์์๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 5052_์ ํ๋ฒํธ ๋ชฉ๋ก (0) | 2022.03.02 |
---|---|
[Baekjoon] 11726_2รn ํ์ผ๋ง (0) | 2022.03.01 |
[Baekjoon] 11660_๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 5 (0) | 2022.02.22 |
[Baekjoon] 11051_์ดํญ ๊ณ์ 2 (0) | 2022.02.21 |
[Baekjoon] 4358_์ํํ (0) | 2022.02.16 |