복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법. 각 하위 문제의 결과를 저장해놓고 후에 같은 하위 문제가 나왔을 경우 활용함으로써 계산 횟수를 줄일 수 있다. 특히 하위 문제의 수가 기하급수적으로 증가할 때 유용하다.
브루트 포스 알고리즘
그리디 알고리즘(탐욕 알고리즘)