동적 계획법 ( Dynamic Programming ) : 하나의 복잡한 문제를 한번에 해결하는 것이 아닌 여러 개의 작은 문제로 나눠 큰 문제를 점차적으로 해결할 때 사용한다 -> 점화식을 이용해 문제를 풀어나간다고 생각하면 된다. 동적 계산법 사용 조건 1. Overlapping Subproblems (중복되는 부분 문제) DP는 기본적으로 큰 문제를 나누고 여러 부분 문제로 나눠지며 부분 문제들이 중복해서 나타난다. 하지만 DP는 부분 문제의 결과를 저장하여 계산이 되어야하지만 부분 문제가 중복으로 나타나지 않아 재사용이 불가능한 경우 DP(동적계산법)을 사용할 수 없다. 2. Optimal Substructure(최적 부분 구조) 부분 문제의 최적의 값을 이용해 큰 문제에 영향을 받지 않고 항상 ..