* DP(Dynamic Programming)란 ?: 큰 문제를 작은문제로 나누고 작은문제로 큰문제를 푸는 방법. 작은문제가 중복된다.(vs 분할정복: 분할정복과 비슷한데 분할정복은 작은문제가 중복되지 않는다.) * DP 의 특징1) Overlapping Subproblem: 부분문제(작은문제)가 겹친다.2) Optimal Substructure: 최적 부분 구조. 문제의 정답을 작은 문제의 정답에서 구할 수 있다. 정답의 작은 문제의 정답은 항상 같다. * DP 알고리즘으로 풀 수 있는 대표적인 예: 피보나치 수 !0 1 1 2 3 5 8 13 21 34 55 89 ...F0 = 0F1 = 1...Fn = Fn-1 + Fn-2(n ≥ 2)Fn 이라는 큰문제 값을 Fn-1 과 Fn-2 의 작은 합으로..