얼렁뚱땅 백준 문제풀이

[백준 문제풀이] 얼렁뚱땅 2606번 바이러스 문제 풀이

MOSTAR 2022. 2. 18. 20:47

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

 

풀이

computer_n = int(input())
edge_n = int(input())

path = []
visited = [0]*(computer_n+1)
for i in range(edge_n) :
	path.append(list(map(int,input().split())))

def dfs(path, i, visited) :

	i_list = []
	visited[i] = 1
	for k in range(len(path)) :
		if (path[k][0] == i) and  (visited[path[k][1]]==0):
			i_list.append(path[k][1])
		elif (path[k][1] == i) and  (visited[path[k][0]]==0):
			i_list.append(path[k][0])
	i_list.sort()

	for k in i_list :
		dfs(path, k, visited)

dfs(path,1,visited)
print(sum(visited)-1)