DFS와 Backtracking의 차이점을 알아보자.
DFS
완전 탐색을 기본으로 하는 그래프 순회 기법으로 가능한 모든 경로를 탐색한다.
불필요한 경로를 사전에 차단하는 행동이 없다. 따라서 자원 소모가 심하다.
Backtracking
경로를 찾아가는 도중에 해가 되지 않을 것 같은 경로가 갔다면 더 가지 않고 되돌아온다.
이는 가지치기라고 불린다.
불필요한 경로를 조기 차단하기 때문에 확인해야 하는 경로 수를 줄일 수 있다.
위와 같은 트리가 있다. ALT라는 단어를 찾아보자.
DFS는 ALT라는 단어를 찾기 전까지 모든 노드를 방문한다.
Backtracking은 ALT라는 단어를 찾는 과정에서 ALT라는 단어가 될 수 없을 것 같은 경로에 갔다면 더 가지 않고 돌아온다.
'알고리즘 > 개념' 카테고리의 다른 글
[복잡도] 시간 복잡도와 공간 복잡도 (0) | 2022.03.17 |
---|---|
[최단 경로 트리] 플로이드-워셜 알고리즘[Floyd-Warshall] (0) | 2022.03.17 |
[이진탐색] 하한선[Lower bound], 상한선[Upper bound] (0) | 2022.03.03 |
[정렬] 각 정렬의 장단점 및 시간 복잡도 (0) | 2022.02.10 |
[정렬] 삽입 정렬 [Insertion Sort] (0) | 2022.02.10 |