깊이 우선 탐색
을 말합니다.
트리나 그래프에서 한 루트로 탐색하다가 특정 상황에서 최대한 깊숙이 들어가서 확인한 뒤 다시 돌아가 다른 루트로 탐색하는 방식입니다. 검색 속도는 보통 BFS보다 느립니다.
주로 재귀나 스택을 이용해서 구현하며, 보통 모든 노드를 방문하고자 할 때 사용됩니다.
너비 우선 탐색
을 말합니다.
가장 가까운 곳들을 먼저 탐색하고, 그 다음 거리에 있는 것들을 탐색하는 방법입니다.
BFS
는 방문한 노드들을 차례로 저장한 후 꺼낼 수 있는 자료 구조인 큐를 사용합니다. 즉, 선입선출을 원칙으로 탐색합니다.