동적 계획법(Dynamic Programming) 분할 정복 기법과 많은 부분이 비슷함. 같은 부분 문제를 다시 풀지 않도록 하는 것이 핵심 ex)한번 푼 문제의 답을 저장하고 다음에 다시 풀어야 할 때는 그 문제에 대한 해답만 이용하는 방법 메모이제이션(Memoization) 문제를 풀 떄마다 이미 풀린 문제인지를 먼저 확인하는데, 풀린 문제이면 저장된 답을 이용하고 풀리지 않은 문제이면 그 문제를 풀고 답을 저장한다. 하향식(Top-bottom)식으로 문제를 해결 테이블화(Tabulation) 결과를 저장할 테이블을 먼저 만든다. 다음으로 답이 이미 알려진 상황인 기반 상황(Base Case)에 대한 테이블 항목을 먼저 채우고, 이를 바탕으로 테이블을 채워 올라간다. 동적 계획법을 이용한 문제 해결 ..