[ 컨셉 ]
1. 문제에 대한 접근 방식을 일컫는다
2. 큰 문제를 작은 문제로 나누어 해결해 나가는 것
Q. 분할정복 기법 또한 부분 문제로 나눠 해결하는 과정인데 무엇이 다르지?
- 부분 문제의 중복이 핵심.
- 부분 문제의 중복이 많이 일어나는 문제의 경우, 분할 정복은 해결에 어려움이 있을 수 있다.
[ 동적계획법의 종류 ]
1. 하향식 방법 (Top-down)
- 재귀함수를 통해 하위 문제들을 해결해 나가는 방식
- 많은 중복이 발생하는 경우, 재귀적인 풀이는 효율성에 문제가 발생할 수 있다.
- "Memoization"을 통해 해결 된 하위 문제들을 캐싱(Caching)하여 중복을 해결하여 오버헤드를 줄일 수 있음.
2. 상향식 방법 (Bottom-up)
- 가장 하위의 문제부터 시작하여 순차적으로 해결해 나가는 방식
- 중복을 피할 수 있으며, 재귀(Recursion)에 의한 오버헤드가 없는 것이 장점이다.
3. 예시
- 피보나치 수열(Fibonacci Number) 계산
- 조합(Combination) 문제 해결 등
[ 출처 ]
- Introduction To Algorithms
'Algorithms > Concepts' 카테고리의 다른 글
[알고리즘] 위상정렬(Topological Sort) (0) | 2020.12.24 |
---|