BOJ 2606 바이러스

LONGNEW·2020년 12월 29일
0

BOJ

목록 보기
12/333

https://www.acmicpc.net/problem/2606

시간 1초, 메모리 128MB
input :

  • N (1 <= N <= 100)

  • 연결되어 있는 컴퓨터 쌍의 수 M

  • 연결되어 있는 컴퓨터의 번호 쌍 A, B
    output :

  • 1번 컴퓨터를 통해 바이러스에 걸리는 컴퓨터의 '수' 출력.


인접 행렬인가. 리스트인가. 로 연결되어 있는 걸 표시.
1 [2, 5]
2 [3] 등등 해서 BFS를 수행 해서 연결이 되어 있는지 확인을 시키면 되겠다.
visited 에 변화가 생기면 바이러스가 전파 된것.

import sys
from _collections import deque

N = int(sys.stdin.readline())
M = int(sys.stdin.readline())
graph = [[] for _ in range(N + 1)]
visit = [-1] * (N + 1)

for i in range(M):
    A, B = map(int, sys.stdin.readline().split())
    graph[A].append(B)
    graph[B].append(A)

q = deque([1])
visit[1] = 1
cnt = 0
while q:
    node = q.popleft()
    cnt += 1
    for next_node in graph[node]:
        if visit[next_node] != 1:
            q.append(next_node)
            visit[next_node] = 1

print(cnt - 1)

1번으로 인해 바이러스가 퍼진 컴퓨터의 수를 나타내기에 1번을 빼줘야 한다.

0개의 댓글