동적 계획법을 사용하기 위해선 다음 조건들이 만족해야 한다.
동적 계획법을 사용할 때, 두 가지 접근 방법이 존재한다.
Bottom - Up의 경우에는 구현이 쉽지만 소스의 가독성이 떨어질 수 있고, Top - Down의 경우에는 소스의 가독성이 증가되지만 구현이 어려울 수 있다.
동적 계획법은 전체 문제를 부분 문제로 나누어 푸는 방법입니다. 이 때, 부분 문제의 최적해를 큰 문제의 최적해를 구할 때 반복적으로 사용하는 메모이제이션 기법을 통해 문제를 해결하는 속도를 향상시킵니다. 동적 계획법을 사용하기 위한 두 가지 조건이 있는데, 하나는 작은 문제가 반복적으로 발생하는 부분 반복 문제여야 하며, 다른 하나는 전체 문제의 최적의 해가 부분 문제의 최적의 해인 최적 부분 구조여야 합니다. 접근 방법으로는 반복문을 활용한 Bottom-up 방법과, 재귀 호출을 활용한 Top-Down 방법이 있습니다.