목차


1. 백트래킹

1-1. 백트래킹이란

백트래킹은 ‘완전탐색 알고리즘' 중 하나로 한 번에 하나의 문제를 해결하되, 가지치기(Pruning) 를 통해 유망하지 않은 경로는 고려하지 않고 탐색하는 방법

가지치기(Pruning)

가지치기는 모든 해를 전부 검사(brute force)와 백트래킹을 구분하는 핵심으로, 기준함수(현재 만들어진 케이스가 해답의 조건을 만족하는지 검사하는 함수)를 통해 가능성이 없는 케이스를 배제하여 풀이시간을 상당히 줄일 수 있다.

1-2 백트래킹 문제 접근

<aside> 💡 Sum of SubSet 문제 n =4, S = { 5, 9, 11, 20 }, m = 25 일 때, S의 모든 부분집합의 합이 m이 되는 모든 경우의 수를 찾는 문제 정답: {5, 9, 11}, {5, 20}

</aside>

1) 문제 상황을 상태공간 트리로 표현하기