

from collections import defaultdict
from collections import deque
def bfs(start, graph, n):
q = deque()
visited = set()
q.append((start, 0))
visited.add(start)
max_dist = -1
cnt = 0
while q:
node, dist = q.popleft()
if max_dist < dist:
max_dist = dist
cnt = 1
elif max_dist == dist:
cnt += 1
child = graph[node]
if len(child) > 0:
for c in child:
if c not in visited:
q.append((c, dist + 1))
visited.add(c)
return cnt
def solution(n, edge):
answer = 0
graph = defaultdict(list)
for i in range(len(edge)):
a, b = edge[i][0], edge[i][1]
graph[a].append(b)
graph[b].append(a)
answer = bfs(1, graph, n)
# 최단 경로로 도착할 때 가장 먼 노드 개수 구하기
return answer