
# 피보나치 수열
def fibo(x):
if x == 1 or x == 2:
return 1
return fibo(x-1) + fibo(x-2)
# 피보나치 수열 : 메모리제이션 방식
d = [0] * 100
def fibo_top_down(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]
# 피보나치 수열 : 바텀업 방식
d = [0] * 100
d[1] = 1
d[2] = 1
n = 99
for i in range(3, n+1):
d[i] = d[i - 1] + d[i + 2]
print(d[n])
728x90
'코딩 어쩌구 > 자료구조와 알고리즘' 카테고리의 다른 글
[책] 마이크로 서비스 아키텍처 구축 가이드 (0) | 2023.08.28 |
---|---|
[온라인 : 기본 알고리즘] 그래프 탐색 (0) | 2022.03.01 |
[온라인 : 기본 알고리즘] 선택정렬, 삽입정렬, 퀵정렬, 계수정렬 (0) | 2022.02.21 |
[온라인 : 기본 알고리즘] 바이너리 인덱스 트리 (0) | 2022.01.24 |
[온라인 : 기본 알고리즘] 스택, 큐, 힙, 이진탐색 (0) | 2022.01.24 |