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

CHOI YUN HO·2021년 11월 30일
0

알고리즘 문제풀이

목록 보기
62/63

📃 문제 설명

네트워크

[문제 출처 : 프로그래머스]

👨‍💻 해결 방법

컴퓨터 간의 연결 여부를 파악해서 네트워크의 개수를 구하는 문제..
dfs나 bfs를 이용하여 컴퓨터들을 따라 탐색하면서 네트워크의 개수를 파악하면 되겠다.

dfs와 bfs 이론 자체가 난이도가 높다고 평가되는건지
레벨3문제 치고는 dfs, bfs만 이해하고 있다면
간단하게 풀 수 있는 문제같다.

방문 표시를 하면서 탐색하여 총 몇개의 네트워크로 구성되어있는지 구한다
나는 dfs를 사용했음

👨‍💻 소스 코드

def solution(n, computers):
    answer = 0
    com = [0] * n

    while 0 in com:
        stack = [com.index(0)]
        com[stack[0]] = 1

        while stack:
            node = stack.pop()

            for j in range(n):
                if com[j] == 0 and computers[node][j] == 1:
                    stack.append(j)
                    com[j] = 1
        answer += 1

    return answer
profile
가재같은 사람

0개의 댓글