
DP(다이나믹 프로그래밍) 다이나믹 프로그래밍(Dynamic Programming)은 최적화 문제를 해결하는 데 사용되는 알고리즘 디자인 기법 중 하나입니다. 이 기법은 주어진 문제를 작은 하위 문제로 나누어 해결하고, 그 결과를 저장해 나중에 동일한 하위 문제가 발생할 때 다시 계산하지 않고 저장된 값을 사용함으로써 중복 계산을 피하는 방법입니다. 다이나믹 프로그래밍은 주로 최적 부분 구조(Optimal Substructure)와 중복 부분 문제(Overlapping Subproblems)라는 두 가지 조건이 만족될 때 사용됩니다. 최적 부분 구조는 큰 문제의 최적해가 작은 문제의 최적해로 구성되는 성질을 나타내며, 중복 부분 문제는 작은 문제들 간에 중복된 계산이 발생하는 성질을 나타냅니다. 장점: ..