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

Junyoung Park·2022년 1월 8일
0

코딩테스트

목록 보기
44/631

1. 문제 설명

네트워크

2. 문제 분석

DFS를 통해 '연결되어 있는지' 확인한다. 노드를 하나씩 체크하면서 연결 여부를 visited에 기록한다. visited에 기록되어 있지 않다면 사전에 기록하지 않았던 노드이므로 다시 연결한다. 즉 computers라는 연결 여부를 담은 리스트를 사용해 네트워크를 카운트한다.

3. 나의 풀이

def solution(n, computers):
    
    visited = [[False]*n for i in range(n)]
    result = 0
    
    def DFS(i, j):
        visited[i][j] = True
        visited[j][i] = True
        
        for k in range(n):
            if not visited[j][k] and computers[j][k] == 1:
                DFS(j, k)
    
    for i in range(n):
        for j in range(n):
            if not visited[i][j] and computers[i][j] == 1:
                DFS(i, j)
                result += 1
    
    return result
profile
JUST DO IT

0개의 댓글