오늘은 알고리즘 중에서 중요한 DP에 대해서 알아보도록 하자. 정의 DP란 memory table를 활용한 재귀 연산이라고 할 수 있다. 그렇다면 재귀 연산이란 무엇일까? Recursive Operation이라고도 하는데, 이 알고리즘은 반복하여 계산하는 것과 같다. 이전 포스팅의 Divide and Conquer를 생각해보면, 거기서도 재귀를 사용했었다. 그렇다면 재귀 연산의 간단한 예시를 보도록 하자. 피보나치 수열은 다음과 같이 정의된다. $A_{n+2} = A_{n+1} + A_{n}$ where $A_1 = 1, A_2 = 1$ 그렇다면 $A(n)$을 구하는데 어떻게 알고리즘을 설계할까? 바로 재귀를 이용해 다음과 같이 설계한다. Fib(n) if n == 1 or n == 2 : return ..