동적 계획법
동적 계획법 핵심 이론
1. 동적 계획법으로 풀 수 있는지 확인
2. 점화식 세우기
3. 메모이제이션 원리 이해

4. 톱-다운 구현 방식 이해
5. 바텀-업 구현 방식 이해
Last updated

Last updated
N = int(input())
dp = [-1] * (N + 1)
dp[0] = 0 # 초기화할 수 있는 초깃값
dp[1] = 1 # 초기화할 수 있는 초깃값
def fibo(n):
if dp[n] != -1: # 기존에 계산한 적이 있는 부분 문제는 재계산하지 않고 바로 리턴
return dp[n]
# 메모이제이션: 구한 값을 바로 리턴하지 않고 dp 테이블에 저장한 후 리턴하도록 구현
dp[n] = fibo(n - 1) + fibo(n - 2)
return dp[n]
fibo(N)
print(dp[N])N = int(input())
dp = [-1] * (N + 1)
dp[0] = 0 # 초기화할 수 있는 초깃값
dp[1] = 1 # 초기화할 수 있는 초깃값
for i in range(2, n + 1):
dp[i] = dp[i - 1] + dp[1 -2]
print(dp[N])