- greedy로 풀이
- 행렬을 변환하는 연산이 3*3 크기의 부분행렬에 있는 모든 원소를 뒤집는 것이므로, 행렬 A를 순회하면서 행렬 B와 부분행렬의 (0, 0)에 있는 원소가 다르다면 toggle함 (toggle시 cnt 1 증가)
- 순회를 마친 후 A와 B가 다르다면 print(-1)하고 프로세스 종료
import sys
def toggle(x, y):
for i in range(x, x+3):
for j in range(y, y+3):
A[i][j] = 1 - A[i][j]
N, M = map(int, sys.stdin.readline()[:-1].split())
A = []
for n in range(N):
A.append(list(map(int, list(sys.stdin.readline()[:-1]))))
B = []
for n in range(N):
B.append(list(map(int, list(sys.stdin.readline()[:-1]))))
cnt = 0
for i in range(N-2):
for j in range(M-2):
if A[i][j] != B[i][j]:
toggle(i, j)
cnt += 1
for i in range(N):
for j in range(M):
if A[i][j] != B[i][j]:
print(-1)
exit()
print(cnt)