What is Dynamic Programming?Dynamic Programming (동적 계획법)이란 복잡한 문제를 다음과 같은 방법으로 푸는 것을 말한다.Sub-Structure : 상위 문제를 하위 문제로 쪼갠다Table-Structure : 각 하위 문제를 해결한 후 계산된 해를 테이블에 저장하여 여러 번 재사용Bottom-up Computation : 작은 하위 문제의 해를 결합하여 더 큰 하위 문제를 해결하고 원래 문제에 접근동적 계획법은 다음과 같은 조건 하에서 풀린다.Optimal Sub-structure : 원 문제의 최적해는 하위 문제들의 최적해들로부터 도출된다Overlapping Sub-problems : 동일한 하위 문제의 해가 반복적으로 필요하므로 계산된 해를 테이블에 저장하여 ..