백준 1018번: 체스판 다시 칠하기
https://www.acmicpc.net/problem/1018




#include <iostream>
using namespace std;
string WB[8] = { "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW" };
string BW[8] = { "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB" };
string board[50] = { "" };
int Func_WB(int X, int Y)
{
int countWB = 0;
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
if (board[X + i][Y + j] != WB[i][j])
{
countWB++;
}
}
}
return countWB;
}
int Func_BW(int X, int Y)
{
int countBW = 0;
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
if (board[X + i][Y + j] != BW[i][j])
{
countBW++;
}
}
}
return countBW;
}
int main()
{
int M, N;
int count = 32;
cin >> N >> M;
for (int i = 0; i < N; i++)
{
cin >> board[i];
}
for (int i = 0; i <= N-8; i++)
{
for (int j = 0; j <= M-8; j++)
{
int black= Func_BW(i, j);
int white= Func_WB(i, j);
if (black < white && black < count)
{
count = black;
}
if (black > white && white < count)
{
count = white;
}
}
}
cout << count;
}
for문이 중복으로 네 개는 써지는 것 같아서
결국 함수로 뺐음
'백준' 카테고리의 다른 글
[백준] 4948번: 베르트랑 공준 (0) | 2022.12.19 |
---|---|
[백준] 1193번: 분수찾기 (C++) (0) | 2022.12.08 |
[백준] 7568번: 덩치 (C++) (0) | 2022.03.19 |
[백준] 10870번: 피보나치 수 5 (C++) (0) | 2022.02.22 |
[백준] 10872번: 팩토리얼 (C++) (0) | 2022.02.22 |