#include <stdio.h> #include <iostream> #include <algorithm> #include <string> #include <vector> #include <stdlib.h> using namespace std; int row, col; char map[55][55]; int Min = 99999999; int main(void) { // freopen("B1018_input.txt", "r", stdin); cin >> row >> col; for(int i = 0; i < row; i++) { string input; cin >> input; for(int j = 0; j < col; j++) { map[i][j] = input[j]; } } for(int i = 0; i+7 < row; i++) { for(int j = 0; j+7 < col; j++) { for(int cnt = 0; cnt < 2; cnt++) { // 칠해야하는 정사각형의 갯수 int paint = 0; // 왼쪽 위가 B if(cnt == 0) { // 행, 열의 첫번째 색깔 저장 char row_paint = 'B'; char col_paint = 'B'; for(int k = i; k < i+8; k++) { for(int m = j; m < j+8; m++) { if(map[k][m] != col_paint) { paint++; } // 열이 바뀔떄마다 색깔 변경 if(col_paint == 'B') { col_paint = 'W'; } else { col_paint = 'B'; } } // 행이 바뀔때마다 색깔 변경 if(row_paint == 'B') { row_paint = 'W'; col_paint = 'W'; } else { row_paint = 'B'; col_paint = 'B'; } } } // 왼쪽 위가 W else { // 행, 열의 첫번째 색깔 저장 char row_paint = 'W'; char col_paint = 'W'; for(int k = i; k < i+8; k++) { for(int m = j; m < j+8; m++) { if(map[k][m] != col_paint) { paint++; } if(col_paint == 'B') { col_paint = 'W'; } else { col_paint = 'B'; } } if(row_paint == 'B') { row_paint = 'W'; col_paint = 'W'; } else { row_paint = 'B'; col_paint = 'B'; } } } Min = min(Min, paint); } } } cout << Min; return 0; } | cs |
'Baekjoon > BruteForce' 카테고리의 다른 글
[백준 14889] 스타트와 링크 (조합) (C/C++) (0) | 2020.04.09 |
---|---|
[백준 1062] 가르침 (조합) (C/C++) (0) | 2020.03.24 |
[백준 1251] 단어 나누기 (조합) (C/C++) (★) (0) | 2020.03.23 |
[백준 1041] 주사위 (조합) (C/C++) (0) | 2019.12.18 |
[백준 15683] 감시 (순열) (C/C++) (★★★) (1) | 2019.11.21 |