๋ฐฑ์ค 2178๋ฒ
์ฝ๋
๐งธ ์์ง BFS๋ ์ด๋ ต๋ค.
๐ ์ฌ๋ฐฉ์ ํ์ํด์ผํ๋ค.
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const info = input.shift().split(" ").map(Number);
const N = info[0] - 1;
const M = info[1] - 1;
let arr = input.map((item) => item.split("").map(Number));
const dir = [
[0, 1],
[0, -1],
[1, 0],
[-1, 0],
];
let willCheck = [[0, 0, 1]];
while (willCheck.length) {
const [x, y, dis] = willCheck.shift();
for (let i = 0; i < 4; i++) {
const nextX = x + dir[i][0];
const nextY = y + dir[i][1];
if (nextX >= 0 && nextY >= 0 && nextX <= M && nextY <= N) {
if (arr[nextY][nextX] === 1) {
arr[nextY][nextX] = dis + 1;
willCheck.push([nextX, nextY, dis + 1]);
}
}
}
}
console.log(arr[N][M]);