๐ŸŽฒ ๋ฐฑ์ค€ 2178๋ฒˆ ๋ฏธ๋กœ ํƒ์ƒ‰

Jeongeunยท2023๋…„ 5์›” 17์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
61/185

๋ฐฑ์ค€ 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]);

0๊ฐœ์˜ ๋Œ“๊ธ€