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