Skip to content

Commit 91a254f

Browse files
authored
feat : [Algorithm] DFS 알고리즘 (#25)
* feat : [Algorithm] 백트래킹 정리 * fix : 이미지 깨진거 수정 * feat : [Alogorithm] DFS 정리 * fix : 이미지 깨진거 수정
1 parent ba31f1c commit 91a254f

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

Algorithm/DFS.md

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# 그래프 탐색 알고리즘
2+
3+
## DFS
4+
5+
- 한 정점에서 시작
6+
- 현재 정점과 인접한 정점 중 아직 방문하지 않은 정점을 하나 선택해 방문
7+
- 만약 인접한 정점을 모두 방문한 상태라면 이전 정점으로 복귀
8+
- 스택이나 재귀를 이용해서 구현할 수 있음
9+
- 코테(PS)에서는 보통 재귀를 사용해서 구현함
10+
- 스택을 사용하는 구현은 함수 호출 스택을 직접 구현
11+
- 보통은 인접 리스트(c++의 vector)를 이용
12+
![image](https://github.com/user-attachments/assets/c148ba70-dfcd-45ba-89bd-8a5513d56b4e)
13+
14+
- 위와 같은 방식으로 구현
15+
- C배열은 방문 체크(check)용 배열
16+
17+
## DFS 와 백트래킹
18+
19+
- 둘 다 재귀함수를 이용해서 구현할 수 있음
20+
- DFS는 그래프의 모든 정점을 방문해봐야하는 경우 사용
21+
- 백트래킹은 봐야하는 부분만 보는 경우 주로 사용
22+
23+
## 예시 문제
24+
25+
![image](https://github.com/user-attachments/assets/a1753b84-5aed-4638-b4b7-5928f7e11360)
26+
27+
- 이분 그래프는 1학년 컴퓨터수학2과목에 다루기 때문에 생략(컴학기준)
28+
- https://ko.wikipedia.org/wiki/%EC%9D%B4%EB%B6%84_%EA%B7%B8%EB%9E%98%ED%94%84
29+
- 혹은 위의 링크 참조
30+
- 요점은, 인접한 노드의 색이 달라야함
31+
- 그래서 단순히 방문을 하는게 아니라, 색깔을 주면서 방문처리를 하면됨
32+
![[Pasted image 20250105211437.png]]
33+
34+
## 추천 문제
35+
36+
https://www.acmicpc.net/problem/1260 : DFS와 BFS
37+
https://www.acmicpc.net/problem/2644 : 촌수계산
38+
https://www.acmicpc.net/problem/1707 : 이분 그래프

0 commit comments

Comments
 (0)