Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- kafka
- storagemanger
- entityrelational
- designpatternn
- json #typescript
- SW
- database
- datamodel
- DP
- db
- Implementation
Archives
- Today
- Total
i.am.developer
[알고리즘] DFS 본문
DFS 깊이 우선 순회
-
출발점 S에서 시작한다.
-
현재 노드를 Visited로 표시하고 인접한 노드들 중 Unvisited 노드가 존재하면 그 노드로 간다.
-
2번을 계속 반복한다.
-
만약 Unvisited 이웃 노드가 존재하지 않으면 직전 노드로 되돌아간다.
-
다시 2번을 반복한다.
-
시작노드 S로 돌아오고 더이상 갈 곳이 없으면 종료한다.
DFS 수도코드
DFS(G, v) : Graph G와 Vertex v
Visited[v] <- YES
For each node u adjacent to v do :
If visited[u] = NO then
DFS(G, u)
BFS와 마찬가지로 Disconnected나 방향 그래프일 경우 모든 노드를 방문하지 않을 수 있다.
따라서 그래프를 탐색할 때는 DFS_ALL을 호출하자! DFS_ALL 은 모든 점에 대해서 visited[v] = NO일 경우 DFS 실행하면 된다.
DFS를 하기 전에 알아야 하는 선행 개념: Graph, BackTracking.
'프로그래밍 > Algorithm' 카테고리의 다른 글
[알고리즘] BFS - Breadth First Search (0) | 2020.03.06 |
---|---|
[Problem] 백준 14940번 쉬운 최단거리 (0) | 2019.04.20 |
[Problem] 백준 14941번 호기심 (0) | 2019.04.04 |
[Problem] 백준 10972번 다음 순열 (0) | 2019.04.01 |
[Problem] 백준 10974번 모든 순열 (0) | 2019.04.01 |