티스토리 뷰

https://www.acmicpc.net/problem/1018

 

1018번: 체스판 다시 칠하기

첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.

www.acmicpc.net

const fs = require('fs');
const [n, ...arr] = fs.readFileSync("/dev/stdin").toString().trim().split("\n");


const [x, y] = n.split(' ').map(v => +v);
const rightBoard = 'WBWBWBWBBWBWBWBW'.repeat(4);
const rightBoard2 = 'BWBWBWBWWBWBWBWB'.repeat(4);

let answer = 100;
for (let i = 0; i < x - 7; i++) {
  for (let j = 0; j < y - 7; j++) {
    const temp = arr[i].substr(j, 8)
      + arr[i + 1].substr(j, 8)
      + arr[i + 2].substr(j, 8)
      + arr[i + 3].substr(j, 8)
      + arr[i + 4].substr(j, 8)
      + arr[i + 5].substr(j, 8)
      + arr[i + 6].substr(j, 8)
      + arr[i + 7].substr(j, 8)
    let cnt1 = 0;
    let cnt2 = 0;
    for (let k = 0; k < 64; k++) {
      if (temp[k] != rightBoard[k]) cnt1++;
      if (temp[k] != rightBoard2[k]) cnt2++;
    }
    if (cnt1 < answer) answer = cnt1;
    if (cnt2 < answer) answer = cnt2;
  }

}
console.log(answer);
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함