본문 바로가기

코딩 문제/프로그래머스

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

https://programmers.co.kr/learn/courses/30/lessons/49189?language=python3 

 

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

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):
    l = len(vertex)
    graph = [[] for i in range(l+1)]
    for (s, e) in vertex:
        graph[s].append(e)
        graph[e].append(s)
        
    distances = [-1] * ( n + 1 )
    q = deque([1])
    distances[1] = 0 
    
    while q:
        now = q.popleft()     
        for node in graph[now]:
            if distances[node] == -1:
                q.append(node)
                distances[node] = distances[now]+1
                
    return distances.count(max(distances))

 

별로 어렵지 않아서 BFS로 풀었습니다.