프로그래머스 - 네트워크

GGob2._.·2023년 4월 14일
0

algorithm

목록 보기
15/55

문제 설명

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
profile
소통을 잘하는 개발자가 되고 싶습니다.

0개의 댓글