๋ฌธ์ ์ค๋ช
ํผ๋ณด๋์น ์๋ F(0) = 0, F(1) = 1์ผ ๋, 1 ์ด์์ n์ ๋ํ์ฌ F(n) = F(n-1) + F(n-2) ๊ฐ ์ ์ฉ๋๋ ์ ์ ๋๋ค.
์๋ฅผ๋ค์ด
- F(2) = F(0) + F(1) = 0 + 1 = 1
- F(3) = F(1) + F(2) = 1 + 1 = 2
- F(4) = F(2) + F(3) = 1 + 2 = 3
- F(5) = F(3) + F(4) = 2 + 3 = 5
์ ๊ฐ์ด ์ด์ด์ง๋๋ค.
2 ์ด์์ n์ด ์ ๋ ฅ๋์์ ๋, n๋ฒ์งธ ํผ๋ณด๋์น ์๋ฅผ 1234567์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํด ์ฃผ์ธ์.
- n์ 2 ์ด์ 100,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
n | return |
3 | 2 |
5 | 5 |
์ ์ถ๋ ฅ ์ ์ค๋ช
ํผ๋ณด๋์น์๋ 0๋ฒ์งธ๋ถํฐ 0, 1, 1, 2, 3, 5, ... ์ ๊ฐ์ด ์ด์ด์ง๋๋ค.
ํ์ด ์ฝ๋
def solution(n):
if n == 2:
return 1
dp = [0 for _ in range(n+1)]
dp[1] = 1
dp[2] = 1
for i in range(3, n+1):
dp[i] = dp[i-1] + dp[i-2]
return dp[n] % 1234567
์ ํ์ ์ธ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ . (dp)
๋ฌธ์ ์์ฒด์์ ์ ํ์์ ์ ๊ณตํ๊ธฐ๋ ํด์, ์ฝ๊ฒ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.
์ฃผ์ํด์ผ ํ ์ฌํญ์ผ๋ก๋ 1234567๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๋ฆฌํด ๊ฐ์ผ๋ก ์๊ตฌํ๋ค๋ ์ ์ด๋ค.
์ฌ๊ท๋ฅผ ํตํด์ ๊ตฌํ ์๋ ์๊ฒ ์ง๋ง, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฉ๋ชจ์ด์ ์ด์ ์ ํ์ฉํ๋ ๊ฒ์ด ์๋์ ์ธก๋ฉด์์ ์ฐ์์ด๋ค.
'๐ ์ฝ๋ฉํ ์คํธ ๋๋น : PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์นดํซ (level2, python) (0) | 2022.09.08 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ค์ ํฐ ์ซ์ (level2, python) (0) | 2022.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ซ์์ ํํ (level2, python) (0) | 2022.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌ๋ฐ๋ฅธ ๊ดํธ (level2, python) (0) | 2022.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ต์๊ฐ ๋ง๋ค๊ธฐ (level2, python) (0) | 2022.09.08 |