https://www.acmicpc.net/problem/1018
#include <iostream>
#define endl "\n"
using namespace std;
char chess1[8][8] = {
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W', 'B'},
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W', 'B'},
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W', 'B'},
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W', 'B'}
};
char chess2[8][8] = {
{'W','B','W','B','W','B','W', 'B'},
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W', 'B'},
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W', 'B'},
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W', 'B'},
{'B','W','B','W','B','W','B','W'}
};
char input[50][50] = { "" };
int main(void) {
// C++ Init
ios::sync_with_stdio(false);
cin.tie(NULL);
int input1, input2;
int min = 0, answer = -1;
char chk;
char ch;
cin >> input1 >> input2;
for (int i = 0; i < input1; i++) {
for (int j = 0; j < input2; j++) {
cin >> ch;
input[i][j] = ch;
}
}
for (int i = 0; i < input1 - 7; i++) {
for (int j = 0; j < input2 - 7; j++) {
min = 0;
for (int k = i; k < i + 8; k++) {
for (int l = j; l < j + 8; l++) {
if (chess1[k - i][l - j] == input[k][l]) continue;
else min++;
}
}
if (answer == -1) answer = min;
if (answer > min) answer = min;
}
}
for (int i = 0; i < input1 - 7; i++) {
for (int j = 0; j < input2 - 7; j++) {
min = 0;
for (int k = i; k < i + 8; k++) {
for (int l = j; l < j + 8; l++) {
if (chess2[k - i][l - j] == input[k][l]) continue;
else min++;
}
}
if (answer == -1) answer = min;
if (answer > min) answer = min;
}
}
if (answer == -1) answer = 0;
cout << answer;
}
'알고리즘' 카테고리의 다른 글
C++ 알고리즘 - 백준 2164 카드2 (0) | 2024.12.30 |
---|---|
C++ 알고리즘 - 백준 1920 수 찾기 (이진탐색 알고리즘) (0) | 2024.12.30 |
C++ 알고리즘 - 백준 11651 좌표 정렬하기 2 (0) | 2024.12.29 |
C++ 알고리즘 - 백준 11650 좌표 정렬하기 (0) | 2024.12.29 |
C++ 알고리즘 - 백준 10814 나이순 정렬 (0) | 2024.12.29 |