본문 바로가기
Python/알고리즘문제

[백준 2606] 바이러스

by 붕어사랑 티스토리 2021. 3. 11.
반응형

 

www.acmicpc.net/problem/2606

 

2606번: 바이러스

첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어

www.acmicpc.net

간단한 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

댓글