알고리즘/DP
DP(Dynamic Programing)
광그로
2017. 6. 20. 07:00
다이나믹 프로그래밍의 속성
1. Overlapping Subproblem
: 최초문제를 작은 문제로 쪼갤 수 있으며, 큰 문제와 작은 문제를 동일한 방법으로 풀 수 있다.
2. Optimal Substructure
: 문제의 정답을 작은 문제의 정답에서 도출할 수 있다.
작은 문제의 정답을 구했다면, 그 정답을 어딘가(배열)에 메모를 한다. : Memoization
다이나믹 프로그래밍의 풀이법
1. Top-down
작은 문제로 나눈다->작은 문제를 푼다->최초문제를 푼다
재귀호출
2. Bottom-up
크기가 작은 문제부터 차례대로 푼다->크기를 조금씩 키워가며 푼다->...->최초문제를 푼다