๐ก ๋ฒฝ ๋ถ์๋ ๊ฒ์ ๊ฑฐ๋ฆฌ๋น์ฉ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ใ .
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const [M, N] = input.shift().split(" ").map(Number);
const miro = input.map((el) => el.split("").map(Number));
const dir = [
[0, 1],
[0, -1],
[1, 0],
[-1, 0],
];
const dijkstra = () => {
const queue = [[0, 0]];
const distArr = Array.from(new Array(N), () => new Array(M).fill(Infinity));
distArr[0][0] = 0;
while (queue.length) {
const [pY, pX] = queue.shift();
for (let d = 0; d < 4; d++) {
const nY = pY + dir[d][0];
const nX = pX + dir[d][1];
let val;
if (nY < 0 || nX < 0 || nY >= N || nX >= M) continue;
if (miro[nY][nX] === 1) val = 1;
else val = 0;
if (distArr[nY][nX] > distArr[pY][pX] + val) {
distArr[nY][nX] = distArr[pY][pX] + val;
queue.push([nY, nX]);
}
}
}
return distArr[N - 1][M - 1];
};
console.log(dijkstra());