1. 동적 프로그래밍(Dynamic Programming)이란? 동적 프로그래밍(DP, Dynamic Programming)은 복잡한 문제를 작은 하위 문제로 나누어 해결한 결과를 저장하여 동일한 계산을 반복하지 않도록 최적화하는 알고리즘 기법이다. 특히, 부분 문제의 결과를 재사용할 수 있는 경우(Overlapping Subproblems)와 최적 부분 구조(Optimal Substructure)를 만족하는 경우에 효과적이다. 📌 핵심 개념:동일한 연산을 반복하지 않도록 결과를 저장(Memoization)작은 문제를 해결한 후 이를 조합하여 큰 문제를 해결하는 방식재귀(Top-Down) 방식과 반복(Bottom-Up) 방식이 존재2. 동적 프로그래밍이 필요한 이유 일반적인 완전 탐색(Brute For..