알고리즘
[백준 알고리즘] 2606번 바이러스. 파이썬(python)
삶은겨란
2022. 4. 28. 18:22
n=int(input()) # 컴퓨터 개수 = 노드 개수
m=int(input()) # 연결된 컴퓨터 쌍 수 = 간선 개수
# 인접행렬
graph=[[0]*(n+1) for _ in range(n+1)]
for _ in range(m):
x,y=list(map(int,input().split()))
graph[x][y]=graph[y][x]=1
visited=[0]*(n+1) # 방문 체크에서 연결되었다는 표시인 1의 개수를 세면된다
def dfs(v):
visited[v]=1
for i in range(n+1):
if graph[i][v]==1 and visited[i]==0:
dfs(i)
dfs(1) # 1번 노드에 연결된 노드의 개수만 구하면 된다.
print(sum(visited)-1) # 1번 컴퓨터는 빼준다.