๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Silver1] 1080๋ฒˆ_ํ–‰๋ ฌ

Dbswnstjd 2023. 3. 1. 19:19

๋ฌธ์ œ

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

 

1080๋ฒˆ: ํ–‰๋ ฌ

์ฒซ์งธ ์ค„์— ํ–‰๋ ฌ์˜ ํฌ๊ธฐ N M์ด ์ฃผ์–ด์ง„๋‹ค. N๊ณผ M์€ 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ํ–‰๋ ฌ A๊ฐ€ ์ฃผ์–ด์ง€๊ณ , ๊ทธ ๋‹ค์Œ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ํ–‰๋ ฌ B๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 1080๋ฒˆ ๋ฌธ์ œ - ํ–‰๋ ฌ
def reverse(x, y):
    for i in range(x, x+3):
        for j in range(y, y+3):
          A[i][j] = 1 - A[i][j]

def check():
  for i in range(N):
    for j in range(M):
      if A[i][j] != B[i][j]:
        return False
  
  return True

N, M = map(int, input().split())

A = [list(map(int,list(input()))) for _ in range(N)]
B = [list(map(int,list(input()))) for _ in range(N)]

count = 0

for i in range(N-2):
  for j in range(M-2):
    if A[i][j] != B[i][j]:
      reverse(i, j)
      count += 1

if check():
  print(count)
else:
  print("-1")