**Backtracking(백트래킹)**은 후보 해를 점진적으로 구성하고, 부분 후보가 유효한 해로 이어질 수 없다고 판단되는 즉시 그것을 버립니다(되돌아갑니다). DFS를 통해 해 공간을 체계적으로 탐색하며 막다른 길을 가지치기합니다.
개념
선택 -> 탐색 -> 선택 취소. 한 선택지를 시도하고 재귀합니다. 실패하면 되돌리고 다음을 시도합니다.
예시: 모든 순열
python
():
result = []
():
remaining:
result.append(path[:])
i ((remaining)):
path.append(remaining[i])
backtrack(path, remaining[:i] + remaining[i+:])
path.pop()
backtrack([], nums)
result
permutations([, , ])
