A와 B를 비교했을 때, 값이 다른 경우 change 함수를 실행시켜 주었다
change 함수에서는 인자로 받은 위치를 시작으로 3x3 크기만큼 뒤집어 행렬 값을 뒤집어 주었다
이후 다시 A와 B를 비교하고, 만약 값이 다른 경우 isTrue 변수에 False를 저장해주었다
소스 코드
def change(x, y, a):
for i in range(x, x+3):
for j in range(y, y+3):
if a[i][j] == 0:
a[i][j] = 1
else:
a[i][j] = 0
n, m = map(int, input().split())
a = [list(map(int, input())) for _ in range(n)]
b = [list(map(int, input())) for _ in range(n)]
cnt = 0
for i in range(n-2):
for j in range(m-2):
if a[i][j] != b[i][j]:
change(i, j, a)
cnt += 1
isTrue = True
for i in range(n):
for j in range(m):
if a[i][j] != b[i][j]:
isTrue = False
break
if not isTrue:
print(-1)
else:
print(cnt)