- 모든 경우의 수를 전부 찾아서 답을 찾는 알고리즘.
- 가능한 모든 경우의 수를 다 해보기 때문에 문제를 풀 때 가장 강력하고 확실한 방법.
- 하지만, 그만큼 시간이 가장 오래 걸리는 탐색 기법.
자원만 충족해준다면 항상 100% 정확도가 보장되기 때문에 가장 확실한 방법이라고 불린다.
예) 0000 ~ 9999로 이루어진 임의의 비밀번호를 찾고 싶을 때, 가능한 모든 비밀번호의 수를 대입해보는 것이다.
→ 모든 조합 = 10^4 = 1초 안에 가능
DFS에 "가지치기"를 통해 가도 되지 않는 비효율적인 경로를 차단하고 효율적으로 탐색하는 완전탐색 기법.
DFS는 현재 지점에서 방문할 곳이 있으면 재귀 호출을 이용해서 계속 이동하며 모든 곳을 방문한다.
하지만, 목표지점이 있지 않는 경로로 빠져서 비효율적인 결과를 초래할 수도 있다.
그렇다면 갈 필요없는 곳은 가지 않는 것이 더 효율적이므로 "가지치기"를 통해 잘라낸다.