반응형
간단한 bfs 문제이다. 답을 출력할때 1번에 의해 감염된 컴퓨터수 이니 카운팅할때 1번 컴퓨터는 제외해주자.
import sys
from collections import deque
N = int(input())
M = int(input())
near = [[] for _ in range(N+1)]
for _ in range(M):
u, v = map(int, sys.stdin.readline().split())
near[u].append(v)
near[v].append(u)
ans = -1
q = deque()
q.append(1)
visit = set()
while q :
now = q.popleft()
if now in visit:
continue
visit.add(now)
ans += 1
for i in near[now]:
if i not in visit:
q.append(i)
print(ans)
반응형
'Python > 알고리즘문제' 카테고리의 다른 글
[프로그래머스][해시] 완주하지 못한 선수 (0) | 2021.03.12 |
---|---|
[백준 1463] 1로 만들기 (0) | 2021.03.11 |
[백준 2805] 나무자르기 (0) | 2021.03.11 |
[백준 1753] 최단경로 (0) | 2021.03.11 |
[백준 15649] N과 M (1) (0) | 2021.03.11 |
댓글