DFS(깊이 우선 탐색)과 BFS(너비 우선 탐색)은 그래프를 탐색하는 방법 중의 하나이다.
그래프란, 노드(node)와 노드를 연결하는 간선(edge)으로 이루어진 자료구조이다.
그래프를 탐색한다는 것은 하나의 노드로부터 시작하여 모든 노드를 방문한다는 뜻이다.
루트노드(혹은 다른 임의의 노드)에서 다음 분기(Branch)로 넘어가기 전에 해당 분기를 끝까지 탐색하는 방법이다.
루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법이다.
DFS(깊이우선탐색) | BFS(너비우선탐색) |
현재 정점에서 갈 수 있는 점들까지 들어가면서 탐색 | 현재 정점에 연결된 가까운 점들부터 탐색 |
스택 또는 재귀함수로 구현 | 큐를 이용해서 구현 |
[알고리즘/문제] - 백준 11724 [연결 요소의 개수] - DFS/BFS
[알고리즘/문제] - 백준 16236 [아기 상어] - JAVA
[알고리즘/문제] - 백준 16234 [인구 이동] - JAVA
[알고리즘/문제] - 백준 12100 [2048 (Easy)] - JAVA
퀵 정렬 (Quick Sort) - middle pivot (0) | 2024.11.22 |
---|---|
그리디(Greedy) 개념 (0) | 2022.02.11 |
'에라토스테네스의 체' 개념 (0) | 2021.09.26 |
BufferedReader / Scanner 의 속도차이 (1) | 2021.09.15 |
댓글 영역