Divide Merge Contract

분할 정복 계약

분할 정복은 문제를 잘게 나누는 것보다 분해한 결과를 어떤 계약으로 다시 합칠지 명확히 하는 것이 핵심입니다.

Divide구간을 나눔
Base작은 문제 해결
Conquer부분 결과 계산
Merge정확히 결합
01

분해 기준

하위 문제가 원래 문제와 같은 형태인지 확인합니다.

02

기저 조건

더 나눌 수 없는 크기에서 어떤 값을 반환할지 정합니다.

03

병합 계약

왼쪽과 오른쪽 결과만으로 전체 답을 만들 수 있는지 봅니다.

04

경계 검증

구간 끝점과 중간값 포함 여부가 누락을 만들지 않는지 확인합니다.

디버깅 기준

  • 병합 정렬은 두 정렬된 결과를 안정적으로 합치는지가 핵심입니다.
  • 최대 부분합은 왼쪽, 오른쪽, 교차 구간을 모두 비교해야 합니다.
  • 재귀 구현과 bottom-up 구현은 같은 병합 계약을 공유해야 합니다.

실패 신호

off-by-one끝점
missing누락
unstable병합
stack깊이