다이나믹 프로그래밍(동적 계획법) 큰 문제를 작은 문제로 나눠서 푸는 알고리즘 DP → 중복⭕ 분할정복(Divid & Conquer) → 중복❌ 정답을 한 번 구했으면, 정답을 어딘가에 메모해놓는다(memorization) Overlapping Subproblem(중복되는 부분 문제): 문제를 작은 문제로 쪼갤 수 있다. 큰 문제와 작은 문제를 같은 방법으로 풀 수 있다 Optimal Substructure(최적 부분 구조): 문제의 정답을 작은 문제의 정답에서 구할 수 있다 int memo[100]; int fibonacci(int n){ if( n 0){ return memo[n]; } memo[n] =fibonacci(n-1) + fibonaccai(n-2); return memo[n]; } } /..