728x90
반응형
https://www.acmicpc.net/problem/1018
1018번: 체스판 다시 칠하기
첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.
www.acmicpc.net
#include <iostream>
using namespace std;
char arr[51][51];
char white_arr[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 black_arr[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'
};
int white_first(int x, int y){
int result = 0;
for(int i = 0; i < 8; i++){
for(int j = 0; j < 8; j++){
if(arr[x + i][y + j] != white_arr[i][j])
result++;
}
}
return result;
}
int black_first(int x, int y){
int result = 0;
for(int i = 0; i < 8; i++){
for(int j = 0; j < 8; j++){
if(arr[x + i][y + j] != black_arr[i][j])
result++;
}
}
return result;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n, m, result = 64;
cin >> n >> m;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
cin >> arr[i][j];
}
}
int t_white, t_black;
for(int i = 0; i <= n - 8; i++) {
for(int j = 0; j <= m - 8; j++){
t_white = white_first(i, j);
t_black = black_first(i, j);
if(t_white < t_black){
result = (t_white < result)? t_white : result;
} else{
result = (t_black < result)? t_black : result;
}
}
}
cout << result << '\n';
return 0;
}
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 2108번 통계학 (C++) (0) | 2021.12.30 |
---|---|
[BOJ] 15702번 중간고사 채점 (C++) (0) | 2021.12.29 |
[BOJ] 10816번 숫자 카드 2 (C++) (0) | 2021.12.29 |
[BOJ] 11899번 괄호 끼워넣기 (C++) (0) | 2021.12.28 |
[BOJ] 1181번 단어 정렬 (C++) (0) | 2021.12.26 |