BaekJoon
1018번 체스판 다시 칠하기
GamJia
2023. 4. 3. 09:04
단계별로 풀어보기 - 브루트 포스 - 4단계
https://www.acmicpc.net/problem/1018
#include <iostream>
using namespace std;
string board[50];
string whiteBoard[8]={
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW"
};
string blackBoard[8]={
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB"
};
int whiteCheck(int x,int y)
{
int count=0;
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
if(board[i+x][j+y]!=whiteBoard[i][j])
{
count++;
}
}
}
return count;
}
int blackCheck(int x,int y)
{
int count=0;
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
if(board[i+x][j+y]!=blackBoard[i][j])
{
count++;
}
}
}
return count;
}
int main()
{
int N,M,temp,result=64;
cin>>N>>M;
for(int i=0;i<N;i++)
{
cin>>board[i];
}
for(int i=0;i<N-7;i++)
{
for(int j=0;j<M-7;j++)
{
temp=min(whiteCheck(i,j),blackCheck(i,j));
if(result>temp)
{
result=temp;
}
}
}
cout<<result<<endl;
return 0;
}