특징
요구사항을 빠짐없이 코드로 옮기는 것이 핵심
문제의 조건과 제약을 정확히 이해하고 처리
-모든 경우의 수를 빠짐없이 조사하여 정답을 찾는 방법
특징
모든 경우를 시도하므로, 정답을 놓칠 가능성이 없다.
입력 규모가 작을 때 유리하며, 구현이 비교적 간단하다.
특징
다른 알고리즘(예: 완전탐색, 동적 계획법 등)보다 일반적으로 구현이 간단하고, 빠른 시간 안에 결과를 얻을 수 있다.
특징
조건을 만족할 수 없는 상황을 빠르게 배제할 수 있어, 탐색 범위를 크게 축소할 수 있다.
대부분 재귀 함수로 구현
특징
분할 → 정복(해결) → 병합 단계를 거친다.
분할된 각 부분 문제는 서로 독립적이어야 한다.
특징
중복 계산을 획기적으로 줄일 수 있어, 지수 시간이 걸리는 문제도 다항 시간 안에 풀 수 있는 경우가 많다.
Top-Down 방식(메모이제이션) 또는 Bottom-up 방식(타뷸레이션)으로 구현한다.
점화식(Recurrence Relation)을 올바르게 세우는 것이 핵심