CS

[Algorithm] 백트래킹(Backtracking)

Posted by DHniyeo Blog on September 25, 2023

백트래킹(Backtracking)

백트래킹 알고리즘은 모든 경우의 수를 탐색하되, 불가능한 경우의 수는 가지치기하여 효율적으로 문제를 해결하는 알고리즘입니다. 모든 경우의 수를 탐색하기 때문에 브루트 포스 알고리즘과 유사하지만, 불가능한 경우의 수를 가지치기하여 시간 복잡도를 줄일 수 있습니다. 그래서 ‘가지치기 알고리즘’ 이라고도 한다.

백트래킹 구현방식

  1. 가능한 경우의 수를 생성합니다.
  2. 생성된 경우의 수를 검사합니다.
  3. 검사한 경우의 수가 문제의 조건을 만족하면 정답으로 출력합니다.
  4. 검사한 경우의 수가 문제의 조건을 만족하지 않으면 가지 치기 합니다.

백트래킹 문제