1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 ...
return f(n) = f(n-1) + f(n-2)
동적 계획법 적용을 위해 만족해야 할 조건 2가지
위 그림에서 A-X 사이의 최단 거리는 AX2이고 X-B는 BX2이다.
=> 전체 최단 경로는 AX2-BX2
다른 경로를 택한다고 해서 전체 최단 경로가 변할 수는 없음
부분 문제에서 구한 최적의 결과가 전체 문제에서도 동일하게 적용되어 결과가 변하지 않을 때
DP로 풀 수 있는 문제 예시
- 특정 데이터 내 최대화/최소화 계산
- 특정 조건 내 데이터 카운팅(갯수/횟수 세기)
- 확률 계산
f(n) = f(n-1) + f(n-2)
f(0) = 0
와 f(1) = 1
Tabulation의 의미?
- 반복을 통해 dp[0]부터 하나 하나씩 채우는 과정을 "table-filling"이라고 함
- 이 Table에 저장된 값에 직접 접근하여 재활용하는 것을 가리켜 Tabulation이라는 명칭이 붙음
- 결과 값을 기억하고 재활용한다는 측면에서 근본 개념은 Memoization과 유사
f(n) = f(n-2) + f(n-1)
의 과정에서 n=5일 때 f(3)
, f(2)
의 동일한 계산이 반복적으로 나오게 됨