동적계획법(Dynamic Programing)이란? 복잡하고 어려운 문제를 작은 단위로 '분할'한 후 다시 '결합'하여 최적의 답을 구하는 방법 동적계획법은 분할된 모든 경우의 수를 검토한다. 중복되는 경우의 검토 비용을 줄이기 위해 기존의 결과를 저장한다. 피보나치 수열 F(n) = F(n-1) + F(n-2) F(n)은 F(n-1)과 F(n-2)로 나뉘어진다. F(n-1)은 F(n-2)와 F(n-3)으로 나뉘어진다. . . . 이처럼 가장 큰 단위가 작은 단위로 나뉘어지는 피보나치 수열은 동적계획법으로 풀기 적합하다. Top-Down F(7)은 피보나치 수열 공식에 따라 위 그림과 같이 분할되어 간다. F(1) = 1이고 F(0) = 0이라 주어지면 다시 위로 '결합'하며 올라간다. 이때 결과를 미리..