항해99-WIL-DFS와 BFS

장산·2022년 5월 22일
0

파이썬

목록 보기
4/9

보통 그래프 문제에는 DFS(Depth-First Search)와 BFS(Breadth-First Search)가 있다.

DFS

마지막 노드가지 깊게 탐색을 해서 깊이 우선 탐색이라 부른다.주로 스택이나 재귀로 구현한다.
(백트레킹에 뛰어난 효용을 보인다.)

DFS의 기본 원칙

데이터를 찾을 때는 항상"앞으로 찾아 가야할 노드"와 "이미 방문한 노드"를 기준으로 데이터를 탐색

DFS의 구현 방식

기본적으로"스택/큐"를 활용할수도 있고,"재귀함수"를 통해 구현할수 있다

BFS

너비 우선 탐색이라고 불리는 BFS는 말 그대로 너비를 우선해서 그래프를 탐색하는 기법이다. 시작점인 루트 노드와 같은 거리에 있는 노드를 우선으로 방문한다고 보면 된다.

BFS 의 구현 방식

알고리즘의 핵심은 큐 자료구조를 사용하는것인데, 노드를 방문하면서 인접한 노드 중 방문하지 않았던 노드의 정보만 큐에 넣어 먼저 큐에 들어있던 노드부터 방문하면 되는 것이다.
tony park의 블로그 여기에 이해하기 쉽게 그림으로 잘나와있다

profile
신입 개발자

0개의 댓글