백준 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

+ Recent posts