제주 탈출 일지

[Python3] 프로그래머스 레벨 3 - 네트워크 본문

코딩 테스트

[Python3] 프로그래머스 레벨 3 - 네트워크

귀건 2021. 4. 27. 01:24
728x90
반응형
#   0 1 2 
# 0 1 1 0
# 1 1 1 0
# 2 0 0 1
import sys
sys.setrecursionlimit(30000)

def dfs(set, v, visited):
    if visited[v] == False:
        visited[v] = True
        for i in set[v]:
            if not visited[i]:
                dfs(set, i, visited)
        return True
    else :
        return False
        

def solution(n, computers):
    answer = 0    
    set = []
    for i in range(n): # 인접리스트로 변환해서 확인
        array = []
        for j in range(n):
            if computers[i][j] == 1:
                array.append(j)
        set.append(array)    
    visited = [False] * n
    for i in range(n):
        if dfs(set, i, visited):
            answer += 1       
    return answer

주어진 computers 2차원 배열에서 인접리스트를 만들어 내었다.

인접리스트를 DFS로 순회하여 True를 반환하는 방문할 수 있는 지점을 모두 확인하여 answer를 반환한다.

728x90
반응형
Comments