💜개발과 일상 (≧∇≦)ノ
[백준 c++] 1018 체스판 다시 칠하기 (실4) 본문
📌 문제
M x N 보드를 8x8 크기 체스판으로 만들기 ( M,N <= 50 )
이때 8x8 체스판에서 다시 칠해야하는 정사각형의 최소 개수를 구하는 문제.
이 문제는 모든 경우의 수를 파악해야하기 때문에 8x8의 모든 경우의 수를 구하고
그 경우의 보드판을 모두 파악해야한다.
💻 정답 코드
#include <iostream>
using namespace std;
int main() {
int N; cin >> N;
int M; cin >> M;
char** arr = new char*[N];
for (int i = 0; i < N; i++) {
arr[i] = new char[M];
cin >> arr[i];
}
//모든 변수 선언 및 입력
int min = 9999999999999;
for (int k = 0; k < N - 7; k++) {
for (int l = 0; l < M - 7; l++) {
int CntB = 0;
int CntW = 0;
for (int i = k; i < 8 + k; i++) {
for (int j = l; j < 8 + l; j++) {
if ((i + j) % 2 == 0) {
if (arr[i][j] == 'B')
CntW++;
else
CntB++;
}
else {
if (arr[i][j] == 'B')
CntB++;
else
CntW++;
}
}
}
int temp = CntB < CntW ? CntB : CntW;
min = temp < min ? temp : min;
}
}
cout << min << endl;
return 0;
}
'CS > 백준' 카테고리의 다른 글
[백준 c++] 9251 LCS (골5) (0) | 2023.04.03 |
---|---|
[백준 c++] 2292 벌집 (블2) (0) | 2023.02.24 |
[백준 c++] 2798 블랙잭 2트 (블2) (0) | 2023.02.24 |
[백준 c++] 16139 인간-컴퓨터 상호작용 (실1) (0) | 2023.02.22 |
[백준 c++] 14501 퇴사 (실3) (0) | 2022.11.16 |