Haribo ML, AI, MATH, Algorithm

네트워크

2021-01-23
Haribo

네트워크

내코드는 아닌데 나보다 더 잘짜서 가져옴(속도, 가독성)

def visit(node, graph, visited):
    visited[node] = 1
    for child in range(len(graph[node])):
        if not visited[child] and graph[node][child] == 1:
            visit(child, graph, visited)

def solution(n, computers):
    visited = [0] * n
    answer = 0
    for node in range(n):
        if not visited[node]:
            visit(node, computers, visited)
            answer += 1
        if sum(visited) == n:
            break
    return answer

풀이

0번 노드부터 n-1번 노드까지 DFS를 돌리며 방문한 노드는 체크

  • DFS순회가 끝나면 네트워크 하나를 정리한 것이므로 answer += 1

그다음 방문하지 않은 노드 찾아서 다시 순회

코드를 워낙 간단하고 간결하게 잘짜서 설명할 것이 없다.


Similar Posts

이전 포스트 N으로 표현

다음 포스트 [1차] 추석 트래픽

Comments