[Python] 백준 1080_행렬
https://www.acmicpc.net/problem/1080
코드
**여기서 주의할 점은, a행렬에서 b행렬과 다른 부분을 찾을 때, for문의 범위를 n-2/m-2로 해줘야한다.
n,m으로 설정하면 index error가 발생한다.
n, m = map(int,input().split())
a = [list(map(int, input())) for _ in range(n)]
b = [list(map(int, input())) for _ in range(n)]
#3×3크기의 부분 행렬 원소 뒤집기
def change(x,y):
for i in range(x,x+3):
for j in range(y,y+3):
if a[i][j]==0:
a[i][j]=1
else:
a[i][j]=0
#a행렬에서 b행렬과 다른 부분 찾기
cnt=0
for i in range(n-2):
for j in range(m-2):
if a[i][j]!=b[i][j]:
change(i,j)
cnt+=1
if a==b: #a와 b행렬을 같게 만들었으면 cnt 출력
print(cnt)
else:
print(-1)
Author And Source
이 문제에 관하여([Python] 백준 1080_행렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@soobin519/Python-백준-1080행렬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)