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