알고리즘

다이나믹 프로그래밍(Dynamic Programming)

seein2 2024. 11. 2. 20:33

다이나믹 프로그래밍(dp)이란

- 복잡한 문제를 더 작은 하위 문제로 나누어 해결하는 기법.

- 작은 문제들의 해결책을 저장해두고 재사용.

 

 

다이나믹 프로그래밍이 적용되기 위한 조건

- 최적 부분 구조: 큰 문제의 최적해가 작은 문제의 최적해로 이루어짐

- 중복되는 부분 문제: 동일한 작은 문제들이 반복해서 나타남

 

 

구현 방식

Top-down(하향식): 메모이제이션

Bottom-up(상향식): 타뷸레이션

 

 

대표적인 dp유형

- 피보나치

- 계단 오르기

- 동전 교환

 

 

 

내가 문 문제

백준2775

백준1463