[알고리즘] DP(Dynamic Programing) 이란
·
cs/알고리즘
다이나믹 프로그래밍(동적 계획법)이란? 다이나믹 프로그래밍은 큰 문제를 작은 하위 문제로 나누어 해결하는 방법이다. 이때 작은 하위 문제들의 해결 결과를 저장하고, 중복 계산을 피하여 전체 문제를 효율적으로 해결하는 것이 특징이다. 이렇게 하면 지수적인 시간 복잡도를 갖는 재귀적인 해결 방법보다 훨씬 효율적으로 문제를 풀 수 있다. 위에 설명이 어렵다면 그냥 과정중에 중복되는 계산이 있다면 자료구조에 저장해서 다음에 중복된 계산이 있을때 저장한 값을 활용해서 연산시간의 이득을 얻는 알고리즘이다. 이런 구조 때문에 기억하기 알고리즘이라고 불리기도 한다. 다이나믹 프로그래밍의 특징 중복 부분 문제 (Overlapping Subproblems): 다이나믹 프로그래밍은 동일한 하위 문제들이 반복해서 해결되는 경..