Algorithm(알고리즘)/Dynamic Programming
2) tubulation 방식의 피보나치 함수
고로케
2021. 5. 16. 07:12
반응형
2) tubulation 방식
테이블을 그려놓고 하나씩 진행하며 저장하는 방식
제일 최소의 단위부터 문제의 값을 테이블에 저장해 나가며,
제시된 문제를 해결할 수 있으면 거기서 해당 값을 리턴한다.
문제를 해결할 때 아래에서부터 위로 올라간다.
(작은 값 부터 큰 값으로)
이를 Bottom-up-approach라고 한다.
주로 반복문을 활용한다.
tubulation 방식의 피보나치 함수
def fib_tab(n):
# 이미 계산된 피보나치 수를 담는 리스트
fib_table = [0, 1, 1]
# n번째 피보나치 수까지 리스트를 하나씩 채워 나간다
for i in range(3, n + 1):
fib_table.append(fib_table[i - 1] + fib_table[i - 2])
# 피보나치 n번째 수를 리턴한다
return fib_table[n]
# 테스트
print(fib_tab(10))
print(fib_tab(56))
print(fib_tab(132))
결과
55
225851433717
1725375039079340637797070384
반응형