코드
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int M, N;
string WB[8] = {
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW"
};
string BW[8] = {
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB"
};
string board[50];
int WB_cnt(int a, int b){
int cnt = 0;
for(int i = 0; i < 8; i++)
{
for(int j = 0; j < 8; j++)
{
if(board[a+i][b+j] != WB[i][j])
cnt++;
}
}
return cnt;
}
int BW_cnt(int a, int b){
int cnt = 0;
for(int i = 0; i < 8; i++)
{
for(int j = 0; j < 8; j++)
{
if(board[a+i][b+j] != BW[i][j])
cnt++;
}
}
return cnt;
}
int main(){
cin >> M >> N;
for(int i = 0; i < M; i++){
cin >> board[i];
}
int temp;
int minn = 99999;
for(int i = 0; i < M-7; i++){
for(int j = 0; j < N-7; j++){
temp = min(BW_cnt(i,j), WB_cnt(i,j));
if(temp < minn) minn = temp;
}
}
cout << minn;
return 0;
}
알게된 점
숫자가 작아서 브루트포스구나했는데,
어떻게 8*8에서 바꿔야하는 체스의 개수를 구하는지를 모르겠었다.
근데 정답인 체스판 두개를 설정하고
그걸 갖다 대서 틀린걸 확인하는 식으로 했다.
'하루하나코딩' 카테고리의 다른 글
백준 1259 : 팰린드롬수 c++ (0) | 2023.03.29 |
---|---|
백준 1085 : 직사각형에서 탈출 (0) | 2023.03.28 |
Github 업로드 시작 (0) | 2023.03.28 |
백준 1759 : 암호만들기 c++ (0) | 2023.03.06 |
백준 14501 : 퇴사 c++ (0) | 2023.03.06 |