CT
[Python] 백준 2606번 : 바이러스
shur_
2024. 9. 9. 00:51
https://www.acmicpc.net/problem/2606
BFS
from collections import deque
import sys
N = int(sys.stdin.readline().rstrip())
E = int(sys.stdin.readline().rstrip())
graph = [[] for i in range(N+1)]
visited = [False] * (N+1)
for _ in range(E):
a, b = map(int, sys.stdin.readline().split())
graph[a].append(b)
graph[b].append(a)
for i in graph:
i.sort()
def bfs(visited, graph, start):
queue = deque([start])
visited[start] = True
while queue:
v = queue.popleft()
for i in graph[v]:
if not visited[i]:
queue.append(i)
visited[i] = True
bfs(visited, graph, 1)
print(visited.count(True) - 1)
DFS
from collections import deque
import sys
N = int(sys.stdin.readline().rstrip())
E = int(sys.stdin.readline().rstrip())
graph = [[] for i in range(N+1)]
visited = [False] * (N+1)
for _ in range(E):
a, b = map(int, sys.stdin.readline().split())
graph[a].append(b)
graph[b].append(a)
for i in graph:
i.sort()
def dfs(graph, visited, v):
visited[v] = True
for i in graph[v]:
if not visited[i]:
dfs(graph, visited, i)
dfs(graph, visited, 1)
print(visited.count(True) - 1)
- DFS BFS 기본 구현