✏️ DFS 알고리즘
import sys
graph = [
[],
[2,3,8],
[1,7],
[1,4,5],
[3,5],
[3,4],
[7],
[2,6,8],
[1,7]
]
visited = [False] * (8+1)
def dfs (graph , v , visited) :
visited[v] = True
print(v , end=' ')
for i in graph[v] :
if not visited[i] :
dfs(graph,i , visited)
dfs(graph , 1, visited)
👀 문제 풀이
import sys
count = int(sys.stdin.readline())
n = int(sys.stdin.readline())
graph = [[] for _ in range(count+1)]
ans = 0
for _ in range(n) :
a,b = map(int, sys.stdin.readline().split())
graph[a].append(b)
graph[b].append(a)
visited = [False] * (count+1)
def dfs(i, visited) :
visited[i] = True
global ans
ans += 1
for k in graph[i] :
if not visited[k] :
dfs(k,visited)
dfs(1,visited)
print(ans-1)
- 위 dfs 알고리즘 코드의 graph 의 형태와 같게 만들기