DevKim

[Python] 백준 #1080 행렬 본문

알고리즘 PS

[Python] 백준 #1080 행렬

on_doing 2020. 12. 19. 21:02
728x90

www.acmicpc.net/problem/1080

 

1080번: 행렬

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

www.acmicpc.net

쉬운듯 어려운 요상한 그리디

n,m=map(int,input().split())
A=[]
A_list=[]
B_list=[]
cnt=0
k=-1

for i in range(n):
    A_list.append(list(input())) # A행렬
    
for i in range(n):
    B_list.append(list(input())) # B행렬

        

def SWAP(n,m):    
    for i in range(n,n+3):
        for j in range(m,m+3):
            if(A_list[i][j]=='0'):
                A_list[i][j]='1'
            else:
                A_list[i][j]='0'
            
            
for i in range(n):
    for j in range(m):
        if(A_list[i][j]!=B_list[i][j]):
            if(i<=(n-3) and j<=(m-3)):
                #print("n,m:",i,j)
                SWAP(i,j)
                cnt+=1
            
for i in range(n):
    for j in range(m):
        if(A_list[i][j]!=B_list[i][j]):
            cnt=-1
            break
            
            
print(cnt)
                
728x90
Comments