practivceAlgorithm/백준

[백준][Python] 1080 행렬

findTheValue 2021. 10. 15. 20:29

쭉 가면서 계속 바꿔주면 된다. 아니면 누적 배열을 만들어 바꾼 횟수를 기록해주며 홀짝 판별해도 되는데 소요가 비슷하기 때문에 그냥 그리디로 계속 바꾸는게 낫다.

 

import sys
input = sys.stdin.readline

N, M = map(int, input().split())
A = [list(map(int, list(input().rstrip()))) for _ in range(N)]
B = [list(map(int, list(input().rstrip()))) for _ in range(N)]
cnt = 0
for i in range(N):
    for j in range(M):
        if i < N - 2 and j < M - 2:
            if A[i][j] != B[i][j]:
                for x in range(i, i + 3):
                    for y in range(j, j + 3):
                        A[x][y] ^= 1
                cnt += 1
        else:
            if A[i][j] != B[i][j]:
                print(-1)
                exit()
print(cnt)