문제 번호 : 2644 번
문제 바로가기 ☞ https://www.acmicpc.net/problem/2644
<<< 문제 내용 >>>
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().trim().split("\n");
const N = Number(input.shift());
let graph = Array.from(Array(N + 1), () => new Array(0));
const [a, b] = input[0].split(" ").map(Number);
const graphLen = Number(input[1]);
// 그래프 연결
for (let i = 2; i < 2 + graphLen; i++) {
const [start, end] = input[i].split(" ").map(Number);
graph[start].push(end);
graph[end].push(start);
}
// bfs 시작
const bfs = (idx, cnt) => {
let queue = [[idx, cnt]];
let visited = new Array(N + 1).fill(false);
while (queue.length) {
[idx, cnt] = queue.shift();
visited[idx] = true;
while (graph[idx].length) {
let temp = graph[idx].pop();
if (temp === b) return cnt + 1;
queue.push([temp, cnt + 1]);
}
}
return -1;
};
console.log(bfs(a, 0));
도움이 되셨다면 공감 부탁드립니다.