2606 : 바이러스

서희찬·2021년 10월 5일
0

백준

목록 보기
55/105

문제

코드

import sys 
input = sys.stdin.readline

def dfs(v):
    global cnt
    visited[v]=1
    for i in range(1,n+1):
        if visited[i]==0 and graph[v][i]==1:
            dfs(i)
            cnt+=1 #1번은 제외 


n = int(input()) # computer 
m = int(input()) # network 

graph = [[0]*(n+1) for _ in range(n+1)]
visited =[0 for _ in range(n+1)]
cnt =0

#컴터연결 
for i in range(m):
    u,v = map(int,input().split())
    graph[u][v]=1
    graph[v][u]=1

dfs(1)

print(cnt)

해설

1번이 감염시키는 컴퓨터 수를 출력하는 것이므로
DFS를 통해 1이후에 연결되있는 컴퓨터부터 cnt+=1을 해주면 된다.

profile
부족한 실력을 엉덩이 힘으로 채워나가는 개발자 서희찬입니다 :)

0개의 댓글