코딩 테스트/백준

백준 알고리즘 2606. 바이러스

스마트코더91 2024. 3. 12. 20:25

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

 

2606번: 바이러스

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

www.acmicpc.net

전체 코드

from collections import defaultdict


def solution(inputs):
    graph = defaultdict(list)
    for f, t in inputs:
        graph[f].append(t)
        graph[t].append(f)

    visited = set()

    def dfs(v):
        visited.add(v)
        for w in graph[v]:
            if w not in visited:
                dfs(w)

    dfs(1)
    return len(visited) - 1


computers = int(input())
connects = int(input())

inputs = []
for _ in range(connects):
    f, t = map(int, input().split())
    inputs.append((f, t))

print(solution(inputs))