파이썬

[BOJ PYTHON] 1080번 행렬

운으로 2022. 8. 17. 23:47

https://www.acmicpc.net/problem/1080

 

1080번: 행렬

첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다.

www.acmicpc.net

 

<코드>

n, m = map(int, input().split())
arr1 = [list(map(int, input())) for _ in range(n)]
arr2 = [list(map(int, input())) for _ in range(n)]

def change(i, j):
    for x in range(i, i+3):
        for y in range(j, j+3):
            arr1[x][y] = 1 - arr1[x][y]


cnt = 0
for i in range(n-2):
    for j in range(m-2):
        if arr1[i][j] != arr2[i][j]:
            change(i, j)
            cnt += 1


result = cnt
for i in range(n):
    for j in range(m):
        if arr1[i][j] != arr2[i][j]:
            result = -1
            break

print(result)