상태 최소화
path, used, sum처럼 다음 단계 판단에 필요한 값만 들고 간다.
백트래킹은 모든 후보를 보되 불가능한 가지를 일찍 버린다. 선택, 표시, 재귀, 원복의 순서가 흔들리면 중복이나 누락이 생긴다.
path, used, sum처럼 다음 단계 판단에 필요한 값만 들고 간다.
남은 후보로도 목표에 도달할 수 없거나 이미 조건을 넘었을 때만 안전하게 중단한다.
push와 pop, used=true와 false가 같은 스코프 안에서 짝을 이뤄야 한다.
path.push_back(x);
used[i] = true;
backtrack(depth + 1);
used[i] = false;
path.pop_back();