*bfs풀이
from collections import deque
def bfs(graph, start, visited):
q = deque([start])
visited[start] = True
while q:
v = q.popleft()
for i in graph[v]:
if not visited[i]:
visited[i] = True
q.append(i)
n, m = map(int, input().split())
graph = [[] for _ in range(n + 1)]
visited = [False] * (n + 1)
cnt = 0
for _ in range(m):
u, v = map(int, input().split())
graph[u].append(v)
graph[v].append(u)
for i in range(1, n + 1):
if not visited[i]:
bfs(graph, i, visited)
cnt += 1
print(cnt)
*dfs풀이
import sys
sys.setrecursionlimit(10**6)
input = sys.stdin.readline
def dfs(graph, v, visited):
visited[v] = True
for i in graph[v]:
if not visited[i]:
dfs(graph, i, visited)
n, m = map(int, input().split())
graph = [[] for _ in range(n + 1)]
for i in range(m):
u, v = map(int, input().split())
graph[u].append(v)
graph[v].append(u)
cnt = 0
visited = [False] * (n + 1)
for i in range(1, n+1):
if not visited[i]:
dfs(graph, i, visited)
cnt += 1
print(cnt)
반응형
'알고리즘 > BFS&DFS' 카테고리의 다른 글
백준 24479 시간초과 해결 (DFS) (0) | 2024.01.30 |
---|---|
백준 11725 트리의 부모 찾기 (0) | 2024.01.28 |
백준 16953 (bfs) (0) | 2024.01.28 |
[BFS&DFS기본] 백준1260번 (Python) (0) | 2024.01.22 |
백준 2644(촌수 계산) -BFS (0) | 2023.08.24 |