DFS (Depth First Search) : 깊이 우선 탐색
- 그래프 탐색의 종류
- 루트 노드 또는 임의의 노드에서 시작해서 최대 깊이까지 탐색 후 돌아와서 다른 노드 탐색
- Stack 사용
- 현재 경로에 있는 노드만 기억하면 된다
- 목표 노드가 깊은 단계에 있으면 해를 빨리 구할 수 있다
- 해가 없는 경로가 깊을 경우 탐색 시간이 오래 걸림
- 얻어진 해가 최단 경로라는 보장이 없음
구현 방법
- 인접 행렬 (Adjacency Matrix) : 행렬로 정점 사이의 관계 표현
- 인접 리스트 : 리스트 방식으로 정점이 연결된 노드의 정보 저장
BFS (Breadth First Search) : 너비 우선 탐색
- 그래프 탐색의 종류
- 루트 노드 또는 임의의 노드에서 시작해서 인접한 노드 먼저 모두 확인 후 다른 노드 탐색
- Queue 사용
- 거리가 가까운 순서로 탐색
- 재귀 동작 X
- FIFO (First In, First Out : 선입선출)
구현 방법
- 인접 행렬 (Adjacency Matrix) : 행렬로 정점 사이의 관계 표현
- 인접 리스트 : 리스트 방식으로 정점이 연결된 노드의 정보 저장
출처
https://www.youtube.com/watch?v=waPwUJu0-lo
'코딩 테스트 > 알고리즘' 카테고리의 다른 글
동적 계획법 (DP : Dynamic Programming) (0) | 2024.09.27 |
---|