코딩 테스트
[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
반응형