title: "[프로그래머스] 가장 먼 노드 Python 파이썬 해설 (Level 3) - 이도훈"
cleanUrl: "programmers/49189"
description: "프로그래머스 Level 3 문제 [가장 먼 노드]의 풀이를 정리합니다."

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

from collections import deque, defaultdict, Counter

def solution(n, edge):
    A = defaultdict(list)
    for u, v in edge:
        A[u].append(v)
        A[v].append(u)
    
    distcnt = Counter()
    visited = [True] + [False] * n
    q = deque()
    q.append((1, 0)) # u, dist
    visited[1] = True
    distcnt[0] += 1
    
    while len(q) > 0:
        u, d = q.popleft()
        
        for v in A[u]:
            if visited[v]:
                continue
            q.append((v, d+1))
            distcnt[d+1] += 1
            visited[v] = True
            
    return distcnt[max(distcnt.keys())]

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges