쭉 가면서 계속 바꿔주면 된다. 아니면 누적 배열을 만들어 바꾼 횟수를 기록해주며 홀짝 판별해도 되는데 소요가 비슷하기 때문에 그냥 그리디로 계속 바꾸는게 낫다.
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)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 1374 강의실 (0) | 2021.10.16 |
---|---|
[백준][Python] 21317 징검다리 건너기 (0) | 2021.10.16 |
[백준][Python] 20551 Sort 마스터 배지훈의 후계자 (0) | 2021.10.15 |
[백준][Python] 1920 수찾기 (0) | 2021.10.15 |
[백준][Python] 17472 다리만들기2 (0) | 2021.10.14 |