Algorithm/Dynamic Programming

[Baekjoon 2748 / python / 브론즈1] 피보나치 수 2

양선규 2024. 4. 5. 14:42
728x90
반응형
x = int(input())

d = [0] * (x + 2)
d[1] = 1
d[2] = 1

for i in range(3, x + 1):
    d[i] = d[i-1] + d[i-2]

print(d[x])

 

간단한 DP 문제이다. 재귀함수로 구현하면 입력값이 90까지이기 때문에 메모리가 터져버린다.

 

x가 1, 2일 경우만 리스트에 등록해 둔 후 간단한 반복문을 돌리면 된다.

 

재귀 구현했을 경우 90이면 정말 컴퓨터가 터지기 직전까지 가는데 상향식 DP방식인 반복문으로 구현하면 대략 90번정도만 연산하면 되기 때문에 문제를 해결할 수 있다.

728x90
반응형