728x90
Code
😢 조건문을 이용해 풀려다가 시간을 조금 보낸 문제
😊 일단, 다른 풀이를 참고하여 단순하게 풀어봤다.
맨 왼쪽 위칸이 'W'일 때 또는 'B'일 때, 8*8체스판을 미리 작성해두었다.
그리고 입력받은 체스판 크기만큼 8*8씩 잘라서 반복적으로 비교하여 모든 경우의 수를 저장했다.
최종적으로 Math.min()을 이용해 최솟값을 출력해주었다.
이런 저런 방법으로 다시 풀어봐야겠다.
Full Code (https://github.com/DasolPark/Dasol_JS_Algorithm/tree/master/Baekjoon)
// Re-painting the chess board |
// 1st Solution |
// For submit |
// const fs = require('fs'); |
// const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n'); |
// For local test |
// const input = [ |
// '8 8', |
// 'WBWBWBWB', |
// 'BWBWBWBW', |
// 'WBWBWBWB', |
// 'BWBBBWBW', |
// 'WBWBWBWB', |
// 'BWBWBWBW', |
// 'WBWBWBWB', |
// 'BWBWBWBW' |
// ]; |
const input = [ |
'10 13', |
'BBBBBBBBWBWBW', |
'BBBBBBBBBWBWB', |
'BBBBBBBBWBWBW', |
'BBBBBBBBBWBWB', |
'BBBBBBBBWBWBW', |
'BBBBBBBBBWBWB', |
'BBBBBBBBWBWBW', |
'BBBBBBBBBWBWB', |
'WWWWWWWWWWBWB', |
'WWWWWWWWWWBWB' |
]; |
const NM = input |
.shift() |
.split(' ') |
.map(num => parseInt(num)); |
const N = NM.shift(); |
const M = NM.shift(); |
const minArr = []; |
const whiteFirst = [ |
'WBWBWBWB', |
'BWBWBWBW', |
'WBWBWBWB', |
'BWBWBWBW', |
'WBWBWBWB', |
'BWBWBWBW', |
'WBWBWBWB', |
'BWBWBWBW' |
]; |
const blackFirst = [ |
'BWBWBWBW', |
'WBWBWBWB', |
'BWBWBWBW', |
'WBWBWBWB', |
'BWBWBWBW', |
'WBWBWBWB', |
'BWBWBWBW', |
'WBWBWBWB' |
]; |
function whiteFirstPaint(y, x) { |
let counter = 0; |
for (let i = y; i < y + 8; i++) |
for (let j = x; j < x + 8; j++) |
if (input[i][j] !== whiteFirst[i - y][j - x]) counter++; |
return counter; |
} |
function blackFirstPaint(y, x) { |
let counter = 0; |
for (let i = y; i < y + 8; i++) |
for (let j = x; j < x + 8; j++) |
if (input[i][j] !== blackFirst[i - y][j - x]) counter++; |
return counter; |
} |
for (let i = 0; i + 7 < N; i++) { |
for (let j = 0; j + 7 < M; j++) { |
minArr.push(whiteFirstPaint(i, j)); |
minArr.push(blackFirstPaint(i, j)); |
} |
} |
console.log(Math.min.apply(null, minArr)); |
'Algorithm > JavaScript(Node.js)' 카테고리의 다른 글
백준 2108번: 통계학 Node.js(JavaScript) (0) | 2020.02.16 |
---|---|
백준 1436번: 영화감독 숌 Node.js(JavaScript) (0) | 2020.02.14 |
백준 2231번: 분해합 Node.js(JavaScript) (0) | 2020.02.03 |
백준 2798번: 블랙잭 Node.js(JavaScript) (0) | 2020.02.01 |
백준 2750번: 수 정렬하기 Node.js(JavaScript) (0) | 2020.01.29 |