728x90
2748๋ฒ: ํผ๋ณด๋์น ์ 2
ํผ๋ณด๋์น ์๋ 0๊ณผ 1๋ก ์์ํ๋ค. 0๋ฒ์งธ ํผ๋ณด๋์น ์๋ 0์ด๊ณ , 1๋ฒ์งธ ํผ๋ณด๋์น ์๋ 1์ด๋ค. ๊ทธ ๋ค์ 2๋ฒ์งธ ๋ถํฐ๋ ๋ฐ๋ก ์ ๋ ํผ๋ณด๋์น ์์ ํฉ์ด ๋๋ค. ์ด๋ฅผ ์์ผ๋ก ์จ๋ณด๋ฉด Fn = Fn-1 + Fn-2 (n ≥ 2)๊ฐ
www.acmicpc.net
์ค๋ช
n๋ฒ์งธ ํผ๋ณด๋์น ์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
ํ์ด
ํผ๋ณด๋์น ์๋ DP ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๊ณ ๋ ํจ์จ์ ์ด๋ค.
Solution
๋ฐฉ์ 1. Bottom-up(ํํฅ์)
import sys
input = sys.stdin.readline
n = int(input())
dp = [0]*(n + 1)
dp[1] = 1
#bottom-up
def fibo(n):
for i in range(2, n + 1):
dp[i] = dp[i - 1] + dp[i - 2]
return dp[n]
print(fibo(n))
๋ฐฉ์ 2. Top-down(์ํฅ์)
import sys
input = sys.stdin.readline
n = int(input())
dp = [0] * (n+1)
#Top-Down
def fibo(n):
if n == 1 or n == 2:
return 1
if dp[n] == 0:
dp[n] = fibo(n - 1) + fibo(n - 2)
return dp[n]
print(fibo(n))
728x90
'๐งฉ Algorithm > [BOJ] Bronze' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| BOJ 3046๋ฒ : ์ผ๊ฐํ๊ณผ R2 (Python/๊ตฌํ/Bronze 4) (0) | 2024.03.12 |
|---|---|
| BOJ 5073๋ฒ : ์ผ๊ฐํ๊ณผ ์ธ ๋ณ (Python/๊ตฌํ/Bronze 3) (0) | 2024.03.06 |
| BOJ 2587๋ฒ : ๋ํ๊ฐ2 (Python/Bronze 2) (0) | 2023.05.04 |
| BOJ 6359๋ฒ : ๋ง์ทจํ ์๋ฒ (Python/Bronze 2) (0) | 2023.04.13 |
| BOJ 1547๋ฒ : ๊ณต (Python/Bronze 3) (0) | 2023.04.12 |