반응형
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 |
Tags
- 자바공부
- 동적계획법
- Java개념
- dp
- java
- 자바의정석
- 브루트포스
- 다이나믹 프로그래밍
- 코딩공부
- 자바개념
- 백준
- ★
- ☆
- 알고리즘공부
- 무료코딩강의
- 알고리즘
- 빅오 표기법
- 백준단계별로풀어보기
- 백준9단계
- 무료개발강의
- 백준자바
- 자바의정석연습문제
- 개발공부
- dfs
- BFS
- 자바
- 백준알고리즘
- 백트래킹
- 자바의정석연습문제풀이
- 시간 복잡도
Archives
- Today
- Total
더 많이 실패하기
깊이 우선 탐색 DFS와 너비 우선 탐색 BFS 본문
반응형
DFS와 BFS란?
DFS는 Depth-First Search, 깊이 우선 탐색
BFS는 Breadth-First Search, 너비 우선 탐색이다
그림에서 보듯이

직관적으로 말하면 아래로 먼저 가는지, 옆으로 먼저 가는지에 따라 구분된다고 할 수 있다
DFS 코드 구현
1. 스택으로 구현한다
스택에서 노드를 꺼낼 때 그 자식 노드들을 스택에 넣는 방법으로 구현한다
(이때, 한 번 들어간 노드는 스택에 다시 넣지 않는다)
2. 재귀로 구현한다
자식을 호출기 전에 자기 자신을 출력하는 방법으로 구현한다
(이때, 한 번 호출한 노드는 다시 호출하지 않는다)
BFS 코드 구현
스택에서 노드를 꺼낼 때 그 자식 노드들을 큐에 넣는 방법으로 구현한다
(이때, 한 번 들어간 노드는 큐에 넣지 않는다)
활용 예시
DFS
BFS최단 거리
* 엔지니어대한민국님 영상을 참고하여 작성했습니다 *
반응형
'개념정리 > 자료구조' 카테고리의 다른 글
유클리드 호제법 (최대공약수와 최소공배수) (0) | 2023.03.29 |
---|---|
이분 탐색 이진 탐색(Binary Search) (0) | 2023.03.10 |
알고리즘 시간 복잡도 빅오 표기법 (0) | 2023.02.24 |
이진 트리 전위 순회(preorder), 중위 순회(inorder), 후위 순회(postorder) (0) | 2023.02.19 |
비트마스킹 (0) | 2023.01.26 |