보통 그래프 문제에는 DFS(Depth-First Search)와 BFS(Breadth-First Search)가 있다.
마지막 노드가지 깊게 탐색을 해서 깊이 우선 탐색이라 부른다.주로 스택이나 재귀로 구현한다.
(백트레킹에 뛰어난 효용을 보인다.)
데이터를 찾을 때는 항상"앞으로 찾아 가야할 노드"와 "이미 방문한 노드"를 기준으로 데이터를 탐색
기본적으로"스택/큐"를 활용할수도 있고,"재귀함수"를 통해 구현할수 있다
너비 우선 탐색이라고 불리는 BFS는 말 그대로 너비를 우선해서 그래프를 탐색하는 기법이다. 시작점인 루트 노드와 같은 거리에 있는 노드를 우선으로 방문한다고 보면 된다.
알고리즘의 핵심은 큐 자료구조를 사용하는것인데, 노드를 방문하면서 인접한 노드 중 방문하지 않았던 노드의 정보만 큐에 넣어 먼저 큐에 들어있던 노드부터 방문하면 되는 것이다.
tony park의 블로그 여기에 이해하기 쉽게 그림으로 잘나와있다