๐ŸŽฒ ๋ฐฑ์ค€ 1080๋ฒˆ ํ–‰๋ ฌ

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

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
89/186

๋ฐฑ์ค€ 1080๋ฒˆ

๐Ÿ’Š ์–ด๋ ต๊ฒŒ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ (0,0)๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ A,B๊ฐ€ ๊ฐ™์€์ง€ ๋น„๊ตํ•˜๊ณ  ๋‹ค๋ฅด๋ฉด ์‹œ์ž‘์ ์„ ๊ธฐ์ค€์œผ๋กœ 3X3์ธ ๋ถ€๋ถ„์„ ๋’ค์ง‘์–ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.
๐ŸŽจ ์ฐธ๊ณ -์™œ ์ด๊ฒƒ์ด ์ตœ์ €ํšŸ์ˆ˜๊ฐ€ ๋˜๋Š”๊ฐ€
๐ŸŽจ ์ฐธ๊ณ  ์ฝ”๋“œ

์ฝ”๋“œ

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

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

for (let i = 0; i < Y; i++) {
  A.push(input[i].split("").map(Number));
}
for (let i = Y; i < Y + Y; i++) {
  B.push(input[i].split("").map(Number));
}

//๋’ค์ง‘๋Š” ํ•จ์ˆ˜
const flip = (x, y) => {
  if (x + 3 > X || y + 3 > Y) {
    return;
  }

  for (let i = y; i < y + 3; i++) {
    for (let j = x; j < x + 3; j++) {
      if (A[i][j] === 1) {
        A[i][j] = 0;
      } else {
        A[i][j] = 1;
      }
    }
  }
};

//A,B ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜
const compare = () => {
  for (let i = 0; i < Y; i++) {
    for (let j = 0; j < X; j++) {
      if (A[i][j] !== B[i][j]) {
        return false;
      }
    }
  }
  return true;
};

let count = 0;
for (let i = 0; i < Y; i++) {
  for (let j = 0; j < X; j++) {
    if (A[i][j] !== B[i][j]) {
      count++;
      flip(j, i);
    }
  }
}

if (compare()) {
  console.log(count);
} else {
  console.log(-1);
}

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