여니의 취준 준비/코딩테스트 (Python)

[2606] 바이러스 in python

여니's 2022. 2. 28. 15:45

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

처음에는 그래프를 단방향으로 했다.

문제에 나와있는 예시도 통과했길래

이게 맞는 건 줄 알았는데 아니었다 ^^

 

양방향으로 받아야한다.

 

단방향으로 받게되면 3에서 탐색이 끝나버린다.

배열 인덱스 3 위치에 있는 곳에는 아무런 노드가 없기 때문에

 

 

양항뱡으로 받으면

정상적으로 탐색이 가능해진다. 

 

모든 노드가 연결되어 있는 경우를 생각하지 못했다.

 

 

n = int(input())
connect = int(input())
array = [[] for _ in range(n + 1)]
visited = [False for _ in range(n + 1)]
for _ in range(connect):
    c1, c2 = map(int, input().split())
    array[c1].append(c2)
    array[c2].append(c1)
answer = 0

def check(computer):
    global answer
    visited[computer]=True
    for i in array[computer]:
        if visited[i]:
            continue
        check(i)
        answer+=1

check(1)
print(answer)