💡문제접근
- 1번 컴퓨터부터 탐색을 시작해서 1번 컴퓨터와 연결된 컴퓨터들을 2차원 리스트를 통해 확인하면서 특정 컴퓨터에 처음 방문하게 된다면 이를 카운팅하여 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 계산하는 방식으로 코드를 작성했다. visualizer를 사용해도 코드의 흐름은 확실히 알기 어려운 것 같다.
💡코드(메모리 : 34104KB, 시간 : 68ms)
from collections import deque
import sys
input = sys.stdin.readline
N = int(input())
pair = int(input())
cnt = 0
computer = [[] for _ in range(N+1)]
for _ in range(pair):
a, b = map(int, input().strip().split())
computer[a].append(b)
computer[b].append(a)
visited = [False] * (N+1)
def BFS(graph, v):
global cnt
queue = deque()
queue.append(v)
visited[v] = True
while queue:
v = queue.popleft()
for i in graph[v]:
if not visited[i]:
visited[i] = True
queue.append(i)
BFS(graph, i)
cnt += 1
return cnt
print(BFS(computer, 1))
💡소요시간 : 9m