1018 : 체스판 다시 칠하기

풀이

그냥 다 돌려보면 된다.

코드

#include <stdio.h>
#define min(a,b) (a)<(b)?(a):(b)

int n, m, i, j, a, b, ans = 1e9;
char str[55][55];

int main() {
	scanf("%d %d", &n, &m);
	for (i = 0; i < n; i++) scanf("%s", str[i]);

	for (i = 0; i < n - 7; i++) for (j = 0; j < m - 7; j++) {
		int cnt = 0;
		for (a = i; a < i + 8; a++) for (b = j; b < j + 8; b++) {
			cnt += str[a][b] == ((a&1)^(b&1) ? 'W':'B');
		}
		ans = min(ans, min(cnt, 64 - cnt));
	}

	printf("%d", ans);

	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2017-11-13 10:08

Read more posts by this author