본문 바로가기

PS

프로그래머스 43162 Python [네트워크, DFS]

def solution(n, computers):
    visited = [False] * n
    
    def dfs(u):
        visited[u] = True
        for v in range(n):
            # 연결되어 있고 아직 방문하지 않은 노드 탐색
            if computers[u][v] == 1 and not visited[v]:
                dfs(v)
                
    answer = 0
    for i in range(n):
        # 방문하지 않은 노드를 발견하면 새로운 네트워크 시작
        if not visited[i]:
            dfs(i)
            answer += 1
    return answer