프로그래머스 - 네트워크

Hayoung Kim·2022년 4월 7일
0

Algorithm

목록 보기
2/4

그래프내에서 독립적인 그룹의 개수를 찾을 때에는 BFS 알고리즘을 사용하여 (0,0) 노드 부터 방문하며 연결되어있는 노드를 방문하는 과정을 반복하며 더이상 연결된 노드가 없을시 그룹의 수를 1씩 증가하는 방법을 사용하여 해결한다.

from collections import deque
visited = []
cnt = 0
def BFS(computers, i, n):
    global visited, cnt
    
    queue = deque([i])
    while queue:
        v = queue.popleft()
        if not visited[v]:
            visited[v] = True
            for j in range(n):
                if v!=j and computers[v][j] == 1:
                     queue.append(j)
    return True

def solution(n, computers):
    global visited, cnt
    answer = 0
    visited = [False]*n
    for i in range(n):
        if not visited[i]:
            if BFS(computers, i, n):
                cnt += 1
            
    answer = cnt
    return answer

0개의 댓글