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
- 입출력
- 정보를 담을 수 있는 그릇
- 리스트와 차이점
- null # undefined
- input()
- 귀도 반 로섬
- html
- 부스트캠프
- 조건문 큰 수부터 입력받아야하는 이유
- 그룹 # 그룹 해체 # 단축키 #figma #Figma
- 조지 불
- del()
- 차집합
- pop()
- 변수
- 성적 입력받기
- Python
- 딥러닝
- append()
- 변할 수 있는
- index()
- insert()
- false
- 변수와 입출력
- Java Script # == # === # difference # 차이
- 합집합
- 파이썬
- 1일차
- a=1
- 불리안
Archives
- Today
- Total
I about me
[Do it! 알고리즘 코딩테스트 with Python] 너비 우선 탐색 (BFS) 본문
Algorithm/Do it! 알고리즘 코딩테스트 with Python
[Do it! 알고리즘 코딩테스트 with Python] 너비 우선 탐색 (BFS)
ssungni 2024. 3. 26. 19:49너비 우선 탐색(BFS)
시작 노드에서 출발해 시작 노드를 기주능로 가까운 노드를 먼저 방문하면서 탐색하는 알고리즘
부모가 나가면 자식이 들어와
기능 | 특징 | 시간 복잡도(노드 수: V, 에지 수: E) |
그래프 완전 탐색 | - FIFO 탐색 - Queue 자료구조 이용 |
O(V + E) |
1. BFS를 시작할 노드를 정한 후 사용할 자료구조 초기화하기
2. 큐에서 노드를 꺼낸 후 꺼내 노드의 인접 노드를 다시 큐에 삽입하기
3. 큐 자료구조에 값이 없을 때까지 반복하기
너비 우선 탐색(BFS) 구현 방법
다음과 같은 반복하면 'A-B-C-D-E-F-G-H-J' 가 된다.
1. (초기화) traversal ← 빈 리스트, q ← 빈 큐
2. 빈 트리가 아니면, root node를 q에 추가(enqueue)
3. q가 비어 있지 않은 동안
3.1. node ← q에서 원소를 추출 (dequeue)
3.2. node 를 방문
3.3. node 의 왼쪽, 오른쪽 자식 (있으면)들을 q에 추가
4. q가 빈 큐가 되면 모든 노드 방문 완료
'Algorithm > Do it! 알고리즘 코딩테스트 with Python' 카테고리의 다른 글
[Do it! 알고리즘 코딩테스트 with Python] 이진 탐색 (0) | 2024.03.26 |
---|---|
[Do it! 알고리즘 코딩테스트 with Python] 깊이 우선 탐색 (DFS) (0) | 2024.03.26 |
[Do it! 알고리즘 코딩테스트 with Python] 동적 계획법 (0) | 2024.03.22 |
[Do it! 알고리즘 코딩테스트 with Python] 그리디 (0) | 2024.03.14 |
[Do it! 알고리즘 코딩테스트 with Python] 구현 (1) | 2024.03.12 |