function solution(n, edge) {
var answer = 0;
// 그래프 만들기--> 배열
// 1번 노드에서부터의 거리, 개수 구하기 --> 배열
let graph=Array.from({length: n}, ()=>[]);
for (let e of edge){
graph[e[0]-1].push(e[1]-1);
graph[e[1]-1].push(e[0]-1);
}
let distance=Array(n).fill(-1);
distance[0]=0;
// 거리는 bfs로 구현
let queue=[0];
while(queue.length>0){
let current=queue.shift();
let next=graph[current];
for (let i=0;i<next.length;i++){
if (distance[next[i]]===-1){
distance[next[i]]=distance[current]+1;
queue.push(next[i]);
}
}
}
let maxDistance=Math.max(...distance);
answer=distance.filter(el=>el===maxDistance).length;
return answer;
}
내 코드 설명
주석 참고