예지의 테크 로그포스 (Yeji's Tech Log Force)
[BOJ][Python]2748 피보나치 수2 본문
재귀로 풀 수도 있겠지만 시간초과가 날 가능성으로 인해
DP 활용
1. Bottom-Up
n = int(input())
dp = [0]*(n+1)
dp[1]=1
for i in range(2, n+1):
dp[i] = dp[i-1]+dp[i-2]
print(dp[n])
2. Top-Down
n = int(input())
DP = [0]*(n+1)
DP[0] = 0
DP[1] = 1
def fib(num):
if num==0 or num==1: return DP[num]
elif DP[num]==0: DP[num]=fib(num-1)+fib(num-2)
return DP[num]
print(fib(n))
'CS > Algorithm & Data Structure' 카테고리의 다른 글
[BOJ] 1302 베스트셀러 (0) | 2023.07.23 |
---|---|
[Programmers][Python] 옹알이(1) (2) | 2023.05.10 |
[BOJ][Python] 백준 1475 방 번호 (0) | 2023.03.09 |
유클리드 호제법(최대공약수 재귀로 구하기) (0) | 2023.02.21 |
Python의 queue (0) | 2023.02.21 |
Comments