단일 해 탐색 가지치기
백트래킹에서 정답을 찾았으면 다음 경우를 볼 필요 없이 탐색을 종료하고 싶을 때가 있다.
아래와 같이 성공하면 true를 반환하여 for문의 다음 idx를 하지 않으면 된다.
bool dfs(int depth) {
// 정답 찾음
if(depth == n)
return true;
for(int i = 0; i < arr.size(); i++) {
if(!check()) continue;
// 정답을 찾았으니, 이후 경우를 볼 필요가 없음
if(dfs(depth + 1)) return true;
}
return false;
}
※ exit(0)를 하는 방법도 있지만 선호하지 않음