탑다운 방식(재귀함수) : 큰 문제를 해결하기 위해 작은 문제를 호출
d = [0] * 1000
def fibo(x):
if x == 1 or x == 2:
return 1
if d[x] != 0:
return d[x]
d[x] = fibo(x-1) + fibo(x-2)
return d[x]
print('탑 다운 방식 결과:', fibo(99))
보텀업 방식(반복문) : DP테이블(결과 저장용 리스트)를 이용, 작은 문제부터 차근차근 답을 도출함
t = [0] * 1000
t[1] = 1
t[2] = 1
n = 99
for i in range(3, n+1):
t[i] = t[i-1] + t[i-2]
print('보텀 업 방식 결과:', t[n])
setrecursionlimit()
함수 호출하기