새소식

Baekjoon

[BaekJoon] 1018 번 체스판 다시 칠하기 문제 - (nodejs)

  • -
728x90
문제 번호 :  1018

문제 바로가기 https://www.acmicpc.net/problem/1018

 

<<< 문제 내용 >>>


 

const fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n'); const first_inputs = input[0].split(' '); const chess = []; for(let i=0; i<first_inputs[0]; i++){ chess.push(input[i+1]); } const white = ['WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW']; const black = ['BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB']; const answer = []; for(let i=0; i<=first_inputs[0]-8; i++){ for(let j=0; j<=first_inputs[1]-8; j++){ let whitecnt = 0; let blackcnt = 0; for(let k=i; k<i+8; k++){ for(let l=j; l<j+8; l=l+1){ if(chess[k][l] !== white[k-i][l-j]) whitecnt++; if(chess[k][l] !== black[k-i][l-j]) blackcnt++; } } let min = whitecnt < blackcnt ? whitecnt : blackcnt; answer.push(min); } } console.log(Math.min(...answer));

* 처음 문제 이해를 잘못해서 N*M의 체스판 전체로 비교하는 것이라 생각했지만, 8*8의 체스판을 입력값이랑 비교하는 것이었다.

 

* 8*8 흰색, 검은색 체스판을 전체 배열이랑 비교하면서 둘 중 작은 값을 answer 배열에 담아둔 후, 마지막에 그 중 최솟값을 출력하면 끝

 

도움이 되셨다면 공감 부탁드립니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.