그래프내에서 독립적인 그룹의 개수를 찾을 때에는 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