๐ ๋ฌธ์ (๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ)
๐ ํ์ด
๋งจ ์ผ์ชฝ ์ ์นธ์ด ํฐ์์ธ ๊ฒฝ์ฐ, ํ๋๋ ๊ฒ์์์ธ ๊ฒฝ์ฐ์ ์ ์์ ์ผ๋ก ์น ํด์ง 8 x 8 ํฌ๊ธฐ์ ์ฒด์คํ์ ๋ฏธ๋ฆฌ ์ค๋นํ๋ค.
let white = ['WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW']
let black = ['BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB']
8 x 8 ํฌ๊ธฐ์ ์ฒด์คํ์ ์ด๋ป๊ฒ ๋ผ์ด์ผํ ๊นโ
row x col ํฌ๊ธฐ์ ์ฒด์คํ์์ 8 x 8 ํฌ๊ธฐ์ ์ฒด์คํ์ ๋ผ์ด๋ผ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์๊ฐํด๋ณด์โโ
(0, 0) ์ขํ์์ ์์ํ์ฌ (row - 8, col - 8) ์ขํ๊น์ง๋ฅผ ์์์ผ๋ก 8 x 8 ํฌ๊ธฐ์ ์ฒด์คํ์ ๋ผ์ด๋ผ ์ ์๋คโโโ
for (let i = 0; i <= row - 8; i++) {
for (let j = 0; j <= col - 8; j++) {
// whiteCheck, blackCheck
}
}
์ด์ ์ฒด์คํ์ ๋ผ์ด๋ผ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ฐจ๋ก๋๋ก ํ์ํ๋ฉด์ ์ ์์ ์ผ๋ก ์น ํด์ง ์ฒด์คํ๊ณผ ๋น๊ต๋ฅผ ํ๋ฉด ๋๋ค.
๋งจ ์ผ์ชฝ ์ ์นธ์ด ํฐ์, ๊ฒ์์์ธ ๊ฒฝ์ฐ๋ฅผ ๊ฐ๊ฐ ๋น๊ตํ์ฌ ๋ค์ ์น ํด์ผํ๋ ์ ์ฌ๊ฐํ์ ์๋ฅผ answer ๋ฐฐ์ด์ ์ถ๊ฐํ๋ค.
๋ง์ง๋ง์ผ๋ก Math.min()์ ์ด์ฉํ์ฌ answer ๋ฐฐ์ด์์์ ์ต์๊ฐ์ ๋ฆฌํดํ๋ฉด ๋๋ค.
// ์ ์ฒด ์ฝ๋
const fs = require('fs');
const input = fs.readFileSync('์์ .txt').toString().trim().split('\n');
let white = [
'WBWBWBWB',
'BWBWBWBW',
'WBWBWBWB',
'BWBWBWBW',
'WBWBWBWB',
'BWBWBWBW',
'WBWBWBWB',
'BWBWBWBW',
];
let black = [
'BWBWBWBW',
'WBWBWBWB',
'BWBWBWBW',
'WBWBWBWB',
'BWBWBWBW',
'WBWBWBWB',
'BWBWBWBW',
'WBWBWBWB',
];
function solution(input) {
[size, ...arr] = input;
[row, col] = size.split(' ').map((x) => Number(x));
arr = arr.map((str) => str.trim('\r').split(''));
let answer = [];
// 8 * 8 ํฌ๊ธฐ์ ์ฒด์คํ์ ๋ง๋๋ ๊ฒฝ์ฐ
for (let i = 0; i <= row - 8; i++) {
for (let j = 0; j <= col - 8; j++) {
// whiteCheck, blackCheck
let cnt1 = (cnt2 = 0);
for (let k = 0; k < 8; k++) {
for (let s = 0; s < 8; s++) {
if (white[k][s] !== arr[i + k][j + s]) cnt1++;
if (black[k][s] !== arr[i + k][j + s]) cnt2++;
}
}
answer.push(cnt1);
answer.push(cnt2);
}
}
return Math.min(...answer);
}
console.log(solution(input));
'Algorithm > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/BOJ] 2164 - ์นด๋2 (0) | 2023.01.03 |
---|---|
[JavaScript/BOJ] 1181 - ๋จ์ด ์ ๋ ฌ (0) | 2022.10.07 |
[Python] ๋ฐฑ์ค 10989๋ฒ ์ ์ ๋ ฌํ๊ธฐ 3 (0) | 2022.08.08 |
[Python] ๋ฐฑ์ค 2751๋ฒ ์ ์ ๋ ฌํ๊ธฐ 2 (0) | 2022.08.08 |
[Node.js/JavaScript] ๋ฐฑ์ค 1157๋ฒ ๋จ์ด ๊ฐ์ (0) | 2022.07.05 |