#include<cstdio> usingnamespacestd; int n, m; char a[51][51], b[51][51]; voidswap(int i, int j){ for (int ii = i-1; ii <= i+1; ii++) for (int jj = j-1; jj <= j+1; jj++) a[ii][jj] = '0' + '1' - a[ii][jj]; } boolcom(void){ for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) if (a[i][j] != b[i][j]) returnfalse; returntrue; } intmain(void){ scanf("%d %d", &n, &m); for (int i = 0; i < n; i++) scanf("%s", a[i]); for (int i = 0; i < n; i++) scanf("%s", b[i]); int cnt = 0; for (int i = 1; i < n-1; i++) for (int j = 1; j < m-1; j++) if (a[i-1][j-1] != b[i-1][j-1]) { swap(i, j); cnt++; } printf("%d", com()? cnt : -1); return0; }
scanf(“%s”, )를 사용하면 행렬 형태로 담아야 할 char 자료형을 for문 하나로 받아올 수 있다.