코드
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int n,m,cnt=0;
string s;
vector<string> v;
const string wfirst = "WBWBWBWB";
const string bfirst = "BWBWBWBW";
vector<string> wf = {wfirst, bfirst,wfirst,bfirst,wfirst,bfirst,wfirst,bfirst};
vector<string> bf = {bfirst, wfirst,bfirst,wfirst,bfirst,wfirst,bfirst,wfirst};
char a[65][65];
int main() {
cin >> n >> m;
for(int i = 0; i < n; i++) {
cin >> s;
v.push_back(s);
}
int rcnt = 0;
int ccnt = 0;
while(1) {
int row = 8+rcnt;
int col = 8+ccnt;
if(col > m) {
rcnt++;
ccnt = 0;
continue;
}
if(row > n) break;
for(int i = rcnt; i < row; i++) {
for(int j = ccnt; j < col; j++) {
a[i-rcnt][j-ccnt] = v[i][j];
}
}
int temp1 = 0;
int temp2 = 0;
for(int i = 0; i < 8; i++) {
for(int j = 0; j < 8; j++) {
if(wf[i][j] == a[i][j]) temp1++;
if(bf[i][j] == a[i][j]) temp2++;
}
cnt = max(cnt, max(temp1, temp2));
}
ccnt++;
}
cout << 64-cnt << '\n';
return 0;
}
체스판 크기는 8x8 고정이므로 주어진 판에서 하나씩 옮겨가며 확인하면 되는 문제. 비교할 판을 만들어서 확인하면 쉽게 파악할 수 있다.
'백준' 카테고리의 다른 글
[백준] 16234번 인구 이동 C++ 코드 (0) | 2024.05.11 |
---|---|
[백준] 2563번 색종이 C++ 코드 (1) | 2024.05.02 |
[백준] 1316번 그룹 단어 체커 C++ 코드 (0) | 2024.05.02 |
[백준] 1193번 분수찾기 C++ 코드 (0) | 2024.05.02 |
[백준] 4134번 다음 소수 C++ 코드 (0) | 2024.04.29 |