DynamicProgramming

문제를 더 작은 단위로 쪼개어 해결하는 알고리즘(분할 정복 알고리즘과 비슷)
그 작은 단위들의 문제들이 반복해서 일어나기 때문에 그 값들을 저장해놓는 식으로 해결해 나가는 알고리즘
조건
1. 부분 문제들이 겹치는가? - 반복되는지
2. 최적 부분 구조 - 문제의 정답을 작은 문제의 정답으로부터 구할 수 있는가?