동적계획법, DP
2020. 1. 3.
동적 계획법(Dynamic Programming, DP)은 큰 문제를 작은 문제로 나눠서 푸는 알고리즘이다. 최적값을 구할때 주로 사용한다. 큰 문제를 작은 문제로 동적계획법의 핵심은 큰 문제를 작은 문제로 나눠서 푼다이다. 분할 정복(Divide and Conquer)과 비슷하지만 분할 정복은 계산한 부분 문제를 한번만 쓰기 때문에 메모이제이션이 필요하지 않다. 하지만 동적계획법에서는 메모이제이션이 필요하다는 점에서 두 가지 방식이 다르다. 메모이제이션(Memoization) 동적계획법 알고리즘의 대표적인 예는 이항 계수(nCr)의 계산이다. bino(a, b) = bino(a-1, b) + bino(a-1, b-1)일 경우, bino(4,2)를 호출했을 때, (a)에서 bino(2,1)는 bino(3..