문제: https://www.acmicpc.net/problem/2748
풀이
다이나믹 프로그래밍으로 해결한 피보나치 수열 문제.
DP는 큰 문제를 작은 문제로 쪼개어 해결하는 방법이다. 작은 문제를 풀다보면 반복하는 풀이가 생기는데, 그것을 매번 재계산하지 않고 값을 저장해두었다가 사용하는 방법이다.
때문에 재귀에 비해 시간 복잡도가 낮다.
소스코드
n = int(input())
arr = [0 for i in range(n+1)]
arr[1] = 1
for i in range(2, n+1):
arr[i] = arr[i-1] + arr[i-2]
print(arr[n])