Algorithm

백준 2606 바이러스 재채점 변경사항

qbinee 2023. 7. 2. 20:29

반례: 컴퓨터가 1만 따로 있는 경우 OR 1번 컴퓨터가 존재하지 않는 경우

import collections

n = int(input())
graph = [[] for _ in range(n+1)]

for _ in range(int(input())):
    a, b = map(int, input().split())
    graph[a].append(b)
    graph[b].append(a)

visited_node = []
q = collections.deque()
q.append(1) # 1번 컴퓨터
while q:
    frm = q.popleft()
    for to in graph[frm]:
        if to not in visited_node:
            q.append(to)
            visited_node.append(to)

## 반례:  1만 고립된 경우
if len(visited_node) == 1 or len(visited_node) == 0:
    print(0)
else:
    print(len(visited_node)-1)