시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회 방법
function solution() {
let answer = "";
let queue = [];
queue.push(1);
// queue의 길이가 0일 때 까지 반복
while (queue.length) {
// queue에서 가장 가까운 노드 하나 꺼낸다.
let v = queue.shift();
// answer에 v 추가
answer += v + " ";
for (let nv of [v * 2, v * 2 + 1]) {
// 만약 nv가 7이 넘어간다면 continue
if (nv > 7) continue;
// v와 연결된 노드를 queue에 추가
queue.push(nv);
}
}
// queue에서 나온 순서인 answer 리턴
return answer;
}
console.log(solution());
주로 최단 거리를 구하는 경우 많이 사용