본문 바로가기
언어

네트워크 덩어리 세기: DFS

by 땅호720 2024. 2. 16.
visited = []
def dfs(v, n, computers):
    global visited
    visited[v] = True
    
    for nei in range(n):    # 인접노드 탐색
        # unvisited & 인접 또는 노드 자신(1)
        if not visited[nei] and computers[v][nei]:
            dfs(nei, n, computers)

def solution(n, computers):
    # computers = n*n
    # 네트워크 개수
    global visited
    
    # 덩어리 세기 -> DFS
    # 외딴 노드도 count
    count = 0   
    visited = [False] * (n)   
    
    for node_idx in range(n):
        if not visited[node_idx]:
            dfs(node_idx, n, computers)
            count += 1         # dfs 끝나면 count 해주기 
  
    return count