백준 / 2606 / 바이러스 (그래프)

맹민재·2023년 4월 12일
0

알고리즘

목록 보기
62/134
n = int(input())
k = int(input())

def dfs(c):
    visited[c] = True

    for i in graph[c]:
        if not visited[i]:
            dfs(i)

graph = [[] for _ in range(n+1)]

for _ in range(k):
    a, b = [int(v) for v in input().split()]
    graph[a].append(b)
    graph[b].append(a)

visited = [False] * (n+1)
dfs(1)

print(visited[1:].count(True)-1)

그래프 알고리즘으로 해결 가능한 문제

graph 알고리즘으로 간선 저장 후에 1번 컴퓨터로 시작해서 dfs로 진행
visited로 방문 여부를 저장하므로 결과 값은 visited에서 방문한 노드의 수이다.(1번은 빼야 하므로 -1)

profile
ㄱH ㅂrㄹ ㅈr

0개의 댓글