풀이
그냥 그리디하게 (i,j)가 다르면 바꿔주면 된다!
코드
#include <stdio.h>
int main() {
int i, j, x, y, ans = 0, n, m;
char a[51][51], b[51][51];
scanf("%d %d", &n, &m);
for (i = 0; i < n; i++) scanf("%s", a[i]);
for (i = 0; i < n; i++) scanf("%s", b[i]);
for (i = 0; i < n - 2; i++) {
for (j = 0; j < m - 2; j++) {
if (a[i][j] == b[i][j]) continue;
ans++;
for (x = i; x < i + 3; x++) {
for (y = j; y < j + 3; y++) {
if (a[x][y] == '0') a[x][y] = '1';
else a[x][y] = '0';
}
}
}
}
for (i = 0; i < n; i++) for (j = 0; j < m; j++)
if (a[i][j] != b[i][j]) { puts("-1"); return 0; }
printf("%d", ans);
return 0;
}
아무말
백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이