| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- CNN
- 딥러닝
- Transformer
- 기초
- 소프트웨어 개발
- RNN
- python 기초
- Python
- 데이터엔지니어
- 힙정렬
- TTS
- 알고리즘
- 트랜스포머
- 생성형 인공지능
- CLIP
- 캐글
- 데이터 시각화
- SQL
- RDBMS
- 머신러닝
- UMAP
- 에이전트
- dementional reduction
- 객체지향
- LangGraph
- ASR
- 정보처리기사
- 랭그래프
- 자연어처리
- python기초
Archives
- Today
- Total
수달이네 기술 블로그
9. 그래프 순회 본문
그래프 순회
순회: 모든 정점과 간선을 검사하여 그래프를 탐색하는 체계적인 절차
깊이 우선 탐색(DFS-Depth first search)=
n개의 정점과 m개의 간선을 가진 그래프에 O(n+m)의 시간 소요
해결 가능한 문제
- G의 모든 정점과 간선을 방문
- G가 연결 그래프인지 확인
- G의 연결 요소들을 계싼
- G의 신장 숲을 계산
- 이중연결요소 계산
알고리즘
기본적인 그래프에 대해 그래프의 간선을
- 모든 정점을 Fresh, 즉, 아직 방문하지 않았음으로 표시해준다.
- 모든 간선 또한 방문하지 않았음으로 만들어준다.
- 모든 정점을 반복문으로 돌아가며 방문하지 않았으면 rDFS(DFS의 재귀함수)를 호출한다
rDFS
- 들어온 해당 정점을 방문했다고 표시한다.
- 다음 정점이 방문하지 않았느냐 확인, 방문하지 않았으면 들어가서 재귀호출
- 방문했으면 뒤로 돌아가기






신장트리(DFS tree)
위와 같은 방식으로 라벨링된 간선과 정점을 신장트리라 부른다
응용
신장숲, 연결요소, 경로, 사이클, 최단경로, 이중 연결요소
너비 우선 탐색(BFS-breadth first search)
레벨 순회와 유사한 방식
n개의 정점과 m개의 간선을 가진 그래프에 O(n+m)의 시간 소요
해결 가능한 문제
- G의 모든 정점과 간선을 방문
- G가 연결 그래프인지 확인
- G의 연결 요소들을 계싼
- G의 신장 숲을 계산
- G의 최단경로 계산
(DFS와 같다)
기본적인 그래프에 대해 그래프의 간선을
- 모든 정점을 Fresh, 즉, 아직 방문하지 않았음으로 표시해준다.
- 모든 간선 또한 방문하지 않았음으로 만들어준다.
- 모든 정점을 반복문으로 돌아가며 방문하지 않았으면 rBFS를 호출한다
rBFS
- 들어온 해당 정점을 방문했다고 표시한다.
- 다음 정점이 방문하지 않았느냐 확인, 방문하지 않았으면 메모리에 삽입
- 연결된 인접 정점을 모두 확인하고 메모리의 다음 정점으로 이동
- 모든 메모리의 정점이 없어지면 나간다.










'알고리즘 공부' 카테고리의 다른 글
| 8.2. 그래프 구현 코딩 (0) | 2025.12.04 |
|---|---|
| 8.1 그래프 간단 구현 (0) | 2025.11.04 |
| 8. 그래프 (0) | 2025.11.04 |
| 7. 해시테이블 (0) | 2025.10.27 |
| 6. 정렬알고리즘 정리, 딕셔너리 (0) | 2025.10.09 |