[프로그래머스] 가장 먼 노드 (파이썬

서봉성·2023년 6월 5일
0

코딩테스트

목록 보기
18/27

문제

코드

from collections import deque
def solution(n, edge):
    answer = 0
    dq=deque()
    tree=[[] for _ in range(n+1)]
    for i, j in  edge:
        tree[i].append(j)
        tree[j].append(i)
    
    distance=[-1]*(n+1)
    
    dq.append([1, 0])
    
    while dq:
        idx, cnt=dq.popleft()
        if distance[idx]!=-1:
            continue
        distance[idx]=cnt
        
        for i in range(len(tree[idx])):
            if distance[tree[idx][i]]==-1:
                dq.append([tree[idx][i], cnt+1])
                
    target=max(distance)
    for i in range(n+1):
        if distance[i]==target:
            answer+=1
    return answer

후기

트리를 연습하고자 하루에 한 번씩 풀고 있는 중이고, 어느정도 감을 잡은 것 같다. 내일은 다른 알고리즘을 공부해봐야겠다.

profile
OverStudy

0개의 댓글