일반 재귀로 하면 시간초과가 발생한다
쓰이는 게 또 쓰이는 재귀 대신, DP를 사용한다
작은 문제를 해결한 뒤, 이를 이용해 큰 문제를 비교적 간단하게 해결
def solution(n):
dp = [-1] * (n+1)
dp[0] = 0
dp[1], dp[2] = 1, 1
for i in range(3, n+1):
dp[i] = dp[i-2] + dp[i-1]
return dp[n]%1234567
바텀업인, Tabulation을 사용하여 풀이했다: for문을 사용해서 전에 쓰였던 값을 배열에 저장한다
def fibonacci(num):
answer = [0,1]
for i in range(2,num+1):
answer.append(answer[i-1]+answer[i-2])
#print(answer)
return answer[-1]