๐ŸŽฒ ๋ฐฑ์ค€ 1743๋ฒˆ ์Œ์‹๋ฌผ ํ”ผํ•˜๊ธฐ

Jeongeunยท2023๋…„ 7์›” 21์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
99/187

๋ฐฑ์ค€ 1743๋ฒˆ

์ฝ”๋“œ

const fs = require('fs'); 
let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');

const [Y, X, K] = input.shift().split(" ").map(Number);

const arr = Array.from(new Array(Y), () => new Array(X).fill(0));

for (let i = 0; i < K; i++) {
  const [y, x] = input[i].split(" ").map(Number);
  arr[y-1][x-1] = 1;
}

const dir = [
  [0, 1],
  [0, -1],
  [1, 0],
  [-1, 0],
];

const DFS = (i, j) => {
  const queue = [[i, j]];
  let size = 0;
  arr[i][j] = -1;
  while (queue.length) {
    const [pY, pX] = queue.pop();
    size++;
    for (let i = 0; i < 4; i++) {
      const nX = pX + dir[i][1];
      const nY = pY + dir[i][0];
      if (nX >= 0 && nX < X && nY >= 0 && nY < Y && arr[nY][nX] === 1) {
        queue.push([nY, nX]);
        arr[nY][nX] = -1;
      }
    }
  }
  return size;
};

const result = [];
for (let i = 0; i < Y; i++) {
  for (let j = 0; j < X; j++) {
    if (arr[i][j] === 1) {
      result.push(DFS(i, j));
    }
  }
}

console.log(Math.max(...result));

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

comment-user-thumbnail
2023๋…„ 7์›” 21์ผ

์ฝ”๋“œ๋ฅผ ์ž˜ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. DFS๋ฅผ ์ด์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜์‹  ๊ฒƒ์ด ์ธ์ƒ๊นŠ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ