다이나믹 프로그래밍(Dynamic Programming)
·
Algorism(PS)/알고리즘 정리
다이나믹 프로그래밍(동적 계획법) 이란? 다이나믹 프로그래밍은 재귀에 대한 최적화이다. 이말은 중복된 부분에 대한 문제가 있다면, 이에 대한 결과를 저장해둔다. 그리고 동일한 부분에서의 문제가 다시 발생한다면, 이 결과를 재사용하는 방법이다. 이런 사례는 피보나치 수열에서 쉽게 찾아볼 수 있다. 피보나치 수열의 점화식은 다음과 같다. f(n) = f(n - 1) + f(n - 2) 이때 n = 4라고 한다면, f(4) = f(3) + f(2) 를 구해야 하는데, 이때 전에 구해두었던 f(3) 과 f(2)의 값을 다시 구하지 않고 저장해두었다가 다시 사용하는 것을 의미한다. 특징 커다란 문제를 나누어 해결하는 편이다. 앞서 말했듯이, 이전에 풀었던 문제와 동일한 문제일 경우, 다시 연산 하는 것이 아니라 ..