현재까지 선택한 값과 제약 사용 여부를 다음 후보 생성에 필요한 만큼만 저장한다.
BACKTRACKING
가지치기는 탐색을 줄이되 정답 경로는 절대 자르면 안 된다
재귀 문법보다 먼저 상태, 후보, 중단 조건의 안전성을 문장으로 고정해야 한다.
부분해가 제약을 위반했거나 남은 후보로 목표에 닿을 수 없을 때만 중단한다.
재귀 호출 전 바꾼 선택 정보를 호출 후 되돌려 형제 분기를 독립적으로 유지한다.
안전한 예: 모든 수가 양수일 때 현재 합이 목표를 넘으면 하위
탐색을 중단한다.
위험한 예: 전제가 없는 과한 조건은 정답 조합을 포함한
분기까지 잘라낼 수 있다.