네트워크 (BFS/DFS)

1. BFS 풀이

from collections import deque

def solution(n, computers):
    visited = [False] * n
    count = 0

    for i in range(n):
        if not visited[i]:
            queue = deque([i])
            visited[i] = True

            while queue:
                node = queue.popleft()
                for next_node in range(n):
                    if computers[node][next_node] == 1 and not visited[next_node]:
                        visited[next_node] = True
                        queue.append(next_node)

            count += 1

    return count

 

 

2. DFS 풀이

def solution(n, computers):
    visited = [False] * n

    def dfs(node):
        visited[node] = True
        for next_node in range(n):
            if computers[node][next_node] == 1 and not visited[next_node]:
                dfs(next_node)

    count = 0
    for i in range(n):
        if not visited[i]:
            dfs(i)
            count += 1
    return count