daniel7481의 개발일지

[프로그래머스]네트워크 본문

프로그래머스

[프로그래머스]네트워크

daniel7481 2022. 7. 29. 10:03
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/43162

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이

레벨3라고 하기에는 다소 난이도가 쉬운 편이었다. 간단한 BFS로 풀 수 있었는데, 단순히 연결된 네트워크가 몇 개인지 확인하면 되는 문제였다. 0부터 n-1까지 탐색하면서 만약 연결되어 있으면 방문 처리를 하고, 방문 처리가 된 노드는 방문을 하지 않게 하면서, 매 탐색시마다 answer에 하나씩 더해주면 된다.

from collections import deque
def solution(n, computers):
    answer = 0
    visited = [False for _ in range(n)]
    for i in range(n):
        if not visited[i]:
            answer += 1
            q = deque()
            q.append(i)
            visited[i] = True
            while q:
                x = q.popleft()
                for v in range(len(computers[x])):
                    if computers[x][v] == 1:
                        if not visited[v]:
                            q.append(v)
                            visited[v] = True                  
    return answer
반응형