2606: 바이러스

ewillwin·2023년 6월 14일
0

Problem Solving (BOJ)

목록 보기
65/230

import sys
from collections import deque

def dfs(start):
	visit[start] = 1
	
	for s in adjacent[start]:
		if visit[s] == 0:
			dfs(s)

N = int(input())
E = int(input())
adjacent = [[] for _ in range(N+1)]
for e in range(E):
	t0, t1 = map(int, sys.stdin.readline()[:-1].split())
	adjacent[t0].append(t1)
	adjacent[t1].append(t0)

visit = [0] * (N+1)
dfs(1)

print(sum(visit) - 1)
  • 인접리스트를 통해 노드간의 관계 그래프를 표현
  • visit 리스트를 통해 노드를 방문했는 지 방문하지 않았는 지를 확인
  • 1번 컴퓨터부터 시작하여 dfs 시작
    -> 'visit 리스트 원소들의 총합 - 1'이 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수가 됨
profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글