코딩테스트에서 자주나오는 BFS, DFS 는 둘 다 그래프 탐색 알고리즘이지만, 탐색하는 방법에서 차이가 있다.
그래프 탐색 알고리즘 대표적인 문제 유형
1. 경로탐색 유형 (최단거리, 시간)
2. 네트워크 유형 (연결)
3. 조합 유형 (모든 조합 만들기)
BFS (Breadth First Search) : 너비 우선 탐색
- 구현 방법: 큐(Queue), 연결리스트(Linked List)
장점
최단 경로를 보장한다.
단점
메모리를 많이 사용한다.
DFS (Depth First Search) : 깊이 우선 탐색
- 탐색에 있어 '경로'에 대한 정보가 필요할 때 사용한다.
- 코딩테스트에서 가장 많이 나오는 문제
- 구현 방법: 재귀함수, 스택(Stack)
- 초기화, 실행 부분을 따로 만들어주는 것이 중요하다.
장점
적은 메모리를 사용한다.
BFS 보다 빠르다.
단점
빠를수도있고 탐색을 다 해야할경우 느릴수도 있다.
정답에 도착하면 탐색을 종료하기 때문에 최단거리라는 보장이 없다.
참고
728x90
반응형
'개발공부' 카테고리의 다른 글
CDN 이란? purdge (0) | 2022.10.24 |
---|---|
서버리스(serverless) 란? (0) | 2022.10.21 |
릴리즈 노트란? 그리고 작성하는 방법과 Tip (0) | 2022.08.18 |
Technical Writer 테크니컬 라이터란? (0) | 2022.08.16 |
Git 브랜치 전략 (0) | 2022.07.10 |
댓글