def fibo_stack(n):
answer = 0
stack = [n]
while stack:
item = stack.pop()
if item <= 1:
answer += 1
else:
stack.append(item - 1)
stack.append(item - 2)
return answer
def fibo_recurive(n):
if n <= 1:
return 1
return fibo_recurive(n - 1) + fibo_recurive(n - 2)
def fibo_queue(n):
answer = 0
queue = [n]
while queue:
item = queue.pop(0)
if item > 1:
queue.append(item - 1)
queue.append(item - 2)
else:
answer += 1
return answer
def fibo_loop(n):
answer = 1
prev = 0
for i in range(n):
answer, prev = answer + prev, answer
return answer
def fibo_memo(n):
d = [1, 1]
for i in range(1, n):
d.append(d[i] + d[i - 1])
return d[n]
def fibo_recursive_memo(n, d={0: 1, 1: 1}):
if n in d:
return d[n]
d[n] = fibo_recursive_memo(n - 1) + fibo_recursive_memo(n - 2)
return d[n]
스택 자료구조로 루프 하는거 메모이제이션 하고 싶은데 못하겠음
나치? 너 이자식
그런말 쓰지마세요
벤치마크 표도 가져오셍
먼데 이게 메모리제이션 방식으로 피보나치 수열 공간복잡도(1)인 함수 만들고 싶어서??