문제 : https://school.programmers.co.kr/learn/courses/30/lessons/43162
컴퓨터의 개수만큼 visited배열 만들고
컴퓨터를 하나씩 돌면서 방문한적 없고 1이면
BFS()
q에 시작값 삽입
시작값 방문처리
while q:
q에서 팝
for 컴퓨터 개수
방문한적 없거나 연결된 컴퓨터가 있으면
방문처리
q삽입
def BFS(start, visited, computers):
q = []
q.append(start)
visited[start] = 1
while q:
v = q.pop()
for i in range(len(computers[0])):
if computers[v][i] == 1 and visited[i] == 0:
visited[i] = 1
q.append(i)
def solution(n, computers):
connected = 0
visited = [0] * len(computers[0])
for i in range(len(computers[0])):
for j in range(len(computers[0])):
if visited[j] == 0 and computers[i][j] == 1:
BFS(i, visited, computers)
connected += 1
return connected