본문 바로가기
Programming/Programmers

[프로그래머스] 가장 먼 노드 (Python)

by 데이터현 2021. 11. 8.

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

 

코딩테스트 연습 - 가장 먼 노드

6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3

programmers.co.kr

다익스트라 알고리즘으로 구현해서 풀면 된다. 무방향 그래프이기 때문에 양쪽 방향으로 이동 가능한 것을 설정해줘야 함.

 

나의 풀이

from collections import deque
def solution(n,vertex):
    graph = [[] for _ in range(n+1)]
    visited = [0 for _ in range(n+1)]
    for ver in vertex:
        graph[ver[0]].append(ver[1])
        graph[ver[1]].append(ver[0])
    queue = deque()
    visited[1]=1
    queue.append((1,1))
    while queue:
        now, length = queue.popleft()
        for i in graph[now]:
            if visited[i] == 0:
                queue.append((i,length+1))
                visited[i] = length+1
    return visited.count(max(visited))

댓글