반응형
1. DFS(Depth-First Search) : 깊이 우선탐색
=>전체적으로 재귀형식이다. 예제 코드 참고.
큐에 넣어서 구현하는 방식.
최상단 원소를 기준으로 해서 방문하지 않은 인접 노드가 있으면 방문(번호 낮은 인접노드부터)
그다음은 8.
돌아가서 3-4-5
탐색순서 : 1-2-7-6-8-3-4-5 순으로 깊게 들어가는것을 우선으로 한다.
DFS 소스코드 예제
인접한노드를 for문으로 낮은 인덱스값부터 검사하여 인접하면 방문(dfs재귀)
2. BFS(Breadth-First Search) : 너비우선탐색
큐에 넣어서 구현
인접노드중에서 방문하지 않은 노드를 모두 큐에 넣어서(낮은 인덱스부터) 하나씩 뽑으면서 방문하며
방문하지않은 노드를 큐에 계속 넣는다.
그리고 3을꺼내서 4와 5를 큐에 넣는다.
8을 꺼내면 다 방문했기 때문에 아무것도 넣을게 없고,
7을 꺼내면 방문하지 않은 6을 큐에 넣는다.
이처럼 순서대로 큐에서 꺼내면서 방문하여 인접노드를 큐에 넣는다.
탐색순서 : 1-2-3-8-7-4-5-6
반응형
'코딩테스트 > 알고리즘 개념정리' 카테고리의 다른 글
백트래킹(BackTracking, DFS/BFS), N과M(1) (0) | 2021.03.30 |
---|---|
플로이드 워셜 알고리즘 (0) | 2020.12.01 |
그래프 이론(싸이클, 최소신장트리, 위상 정렬) (0) | 2020.11.25 |
DP(=다이나믹 프로그래밍,Dynamic Programming) 심화 (0) | 2020.10.13 |
탐욕(Greedy)그리디알고리즘/동적(Dynamic)계획법 비교 (0) | 2020.10.08 |