분할 정복은 (1) 문제를 더 작은 부분 문제로 나누고(divide), (2) 각각을 재귀적으로 정복하고(conquer), (3) 결과를 **결합(combine)**하여 문제를 해결합니다. 많은 효율적인 알고리즘이 이 템플릿을 따릅니다.
개념
부분 문제가 독립적이고 빠르게 작아진다면, 전체 작업량은 **Master Theorem(마스터 정리)**으로 분석할 수 있는 점화식을 따릅니다.
예시: 분할 정복으로 최댓값 찾기
python
():
lo == hi:
arr[lo]
mid = (lo + hi) //
left = max_dc(arr, lo, mid)
right = max_dc(arr, mid + , hi)
(left, right)
max_dc([, , , ], , )
