codes/programmers

49189 가장 먼 노드

카제xd 2024. 12. 4. 00:13

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

 

from collections import deque

def solution(n, edge):
    adjc = [[] for _ in range(n+1)]
    for ed in edge:
        adjc[ed[0]].append(ed[1])
        adjc[ed[1]].append(ed[0])
    
    queue = deque([1])
    distance = [-1 for _ in range(n+1)]
    distance[1] = 0
            
    while queue:
        v = queue.popleft()
        for vv in adjc[v]:
            if distance[vv] == -1:
                distance[vv] = distance[v] + 1
                queue.append(vv)
    
    max_dist = max(distance)

    return distance.count(max_dist)

 

[개선할 점]

- dfs, bfs 개념을 더 자세히 공부하자. 이건 우선 bfs

- distance -1 말고 visited 리스트를 따로 둘 수도 있다!