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

Jin Lee·2022년 5월 16일
0

프로그래머스 Lv.1

목록 보기
1/32
post-thumbnail

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/43162

문제 설명

  • 그래프에서 가장 쉬운 문제 중 하나로 인접 리스트로 해결했다.

코드

def solution(n, computers):
    answer = 0
    visited = [False] * n
    edges = [[] for _ in range(n)]
    
    for i in range(n):
        for j in range(n):
            if i != j and computers[i][j] == 1:
                edges[i].append(j)
    
    for i in range(n):
        if not visited[i]:
            network(i, visited, edges)
            answer = answer + 1
        
    return answer

def network(start, visited, edges):
    queue = [start]
    visited[start] = True
    
    while len(queue) > 0:
        vertex = queue.pop()
        
        for next_vertex in edges[vertex]:
            if not visited[next_vertex]:
                queue.append(next_vertex)
                visited[next_vertex] = True
profile
깃허브 : https://github.com/jinlee9270

0개의 댓글