728x90
반응형
https://www.acmicpc.net/problem/1018
1. Logic
- 검은색이 먼저나오는 최적의 배열과 흰색의 먼저 나오는 최적의 배열을 선언.
- 검은색이 먼저나오는 배열을 확인하는 함수와 흰색이 먼저나오는 배열을 확인하는 함수를 실행시켜서 두개의 함수의 최솟값을 Answer 배열에 저장
#include <bits/stdc++.h>
using namespace std;
string arr[51];
string whitef[8] = {
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW"
};
string blackf[8] = {
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB",
"BWBWBWBW",
"WBWBWBWB"
};
int check_black(int y, int x) {
int cnt = 0;
for(int i = 0; i < 8; i++) {
for(int j = 0; j < 8; j++) {
if(blackf[i][j] != arr[i + y][j + x]) {
cnt++;
}
}
}
return cnt;
}
int check_white(int y, int x) {
int cnt = 0;
for(int i = 0; i < 8; i++) {
for(int j = 0; j < 8; j++) {
if(whitef[i][j] != arr[i + y][j + x])
cnt++;
}
}
return cnt;
}
int main() {
int n, m;
int res = 987654321;
cin >> n >> m;
for (int i = 0; i < n; i++){
cin >> arr[i];
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
if(i + 8 > n || j + 8 > m) continue;
int n = 0;
int w = check_white(i, j);
int b = check_black(i, j);
n = min(w, b);
res = min(res, n);
}
}
cout << res;
}
728x90
반응형
'Algorithm > Beakjoon' 카테고리의 다른 글
[백준/Baekjoon] 1254 팰린드롬 만들기 C++ :: String (0) | 2023.07.10 |
---|---|
[백준/Baekjoon] 2447 별찍기 - 10 C++ :: Recursion 재귀 (0) | 2023.07.02 |
[백준/Baekjoon] 10773 제로 C++ (0) | 2023.06.30 |
[백준/Baekjoon] 12865 평범한 배낭 C++ :: Dynamic Programming (0) | 2023.06.19 |
[백준/Baekjoon] 1463 1로 만들기 C++ :: Dynamic Programming (3) | 2023.06.19 |