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
- 논문 pdf 이름
- ADsP
- 토익공부
- 코드프렌즈
- model collapse
- 토익공부법
- 프론트
- 탑싯
- 탑싯시험
- 데이터분석
- minerva university
- arXiv
- TOPCIT
- pip
- cv2
- 토익
- ai consensus
- students@ai seoul hackathon
- 논문 pdf
- 환급형프론트챌린지
- pdf 다운로드
- 토익문제
- scaico
- ai model collapse
- 크롬 확장프로그램
- toeic
- 데이터관련자격증
- 미네르바 대학
- ai공모전
- 토익문법
Archives
- Today
- Total
토리의 데굴데굴 공부일기
[알고리즘] ch05. DFS,BFS 본문
<이것이 코딩테스트다 with 파이썬> 책 내용을 바탕으로 작성된 글입니다.
DFS(Deep First Search)
- 깊이 우선 탐색 알고리즘
- 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘
** 먼저 그래프(Graph)의 기본 구조를 알아야 함!
그래프(Graph)
간선, 노드로 구성됨
동작 방식
- 탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다.
- 스택 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문 처리를 한다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다.
- 2번의 과정을 더 이상 수행할 수 없을 때까지 반복한다.
** ‘방문 처리’는 스택에 한번 삽입되어 처리된 노드가 다시 삽입되지 않게 체크하는 것을 의미한다. 방문 처리를 함으로써 각 노드를 한번씩만 처리할 수 있다.
BFS(Breadth First Search)
- 너비 우선 탐색 알고리즘
- 가까운 노드부터 탐색하는 알고리즘
- 큐(선입선출) 자료구조 사용
동작 방식
- 탐색 시작 노드를 큐에 삽입하고 방문 처리를 한다.
- 큐에서 노드를 꺼내 해당 노드의 인접 노드 중에서 방문하지 않는 노드를 모두 큐에 삽입하고 방문 처리를 한다.
- 2번의 과정을 더 이상 수행할 수 없을 때까지 반복한다.
DFS vs BFS
DFS | BFS | |
동작 원리 | 스택 | 큐 |
구현 방법 | 재귀 함수 이용 | 큐 자료구조 이용 |
'Algorithm' 카테고리의 다른 글
[백준] 11866번 요세푸스 문제 0 Python (0) | 2024.03.30 |
---|---|
[알고리즘] ch06. 정렬 (0) | 2023.08.16 |
[백준] 10162 전자레인지 Python (0) | 2023.08.06 |
[백준] 11399 ATM Python (0) | 2023.08.05 |
[알고리즘] ch03. 그리디 알고리즘(Greedy Algorithm) (0) | 2023.08.04 |