computers
배열이 주어지고, 각 computer
와 연결된 네트워크를 1, 연결되지 않은 경우 0으로 표현했다.
computer
간 네트워크 수를 구하는 문제다.
- 방문 여부를 다룰 수 있는 배열,
bfs
를 위한 큐 선언
n
의 길이 만큼for
문을 수행하며, 해당 컴퓨터를 방문했는지 확인
- 방문하지 않았다면, 큐에 넣고
network
수 1 증가
- 큐가 비어있지 않은 경우에만, 큐에 첫 요소를 추출하고, 해당
pc
와 연결된 다른pc
가 있는지 확인
-> 만약 연결되어 있는데 방문하지 않았다면, 큐와 방문 배열에 모두 넣는다.
def solution(n, computers):
answer = 0
queue = []
visit = []
for i in range(n):
if i not in visit:
queue.append(i)
answer += 1
while queue:
now = queue.pop(0)
for j in range(n):
if computers[now][j] == 1 and j not in visit:
visit.append(j)
queue.append(j)
return answer