728x90
반응형
1. 재귀 함수 // 시간 복잡도 : O(2^n)
def fivo(x):
if x == 1 or x == 2 :
return 1
return fivo(x-1)+ fivo(x-2)
2. Top-down 방식 , Memoization 기법 사용 ( Cashing ) // 시간 복잡도 : O(N)
# 계산된 피보나치 결과를 저장하는 리스트 선언
result = [0] * 100
def fivo(x):
if x == 1 or x == 2 :
return 1
if result[x] != 0 :
return result[x]
d[x]= fivo(x-1)+fivo(x-2)
return d[x]
3. Bottom-up 방식
# 계산된 피보나치 결과를 저장하는 리스트 선언
result = [0] * 100
result[1]=result[2]=1
n = 99
for i in range(3,n+1):
d[i] = d[i-1]+d[i-2]
728x90
반응형
'알고리즘 > 이것이 취업을 위한 코딩테스트다' 카테고리의 다른 글
08-3. 개미전사 (0) | 2020.09.10 |
---|---|
08-2. 1로 만들기 (0) | 2020.09.10 |
07-3. 떡볶이 떡 만들기 (0) | 2020.09.10 |
07-2. 부품찾기 (0) | 2020.09.10 |
14-25. 실패율 (0) | 2020.09.09 |