BJO 1080 행렬
알게된 것
- c언어에서 사용했던 ! 함수는 python에서는 not으로 사용할 수 있다 not True 하면 False가 나오고 not 0 하면 True가 출력된다.
문제이해
코드
import sys
N, M = map(int, sys.stdin.readline().split())
Before = []
After = []
def flip(a, b):
if a+3 > N or b+3 > M:
return False
for i in range(a, a+3):
for j in range(b, b+3):
if(Before[i][j] == 1 or Before[i][j] == '1'):
Before[i][j] = 0
else:
Before[i][j] = 1
return True
if __name__ == "__main__":
# 1. 입력 받기
for i in range(N):
temp_s = list(sys.stdin.readline().rstrip())
temp_s = [int(i) for i in temp_s]
Before.append(temp_s)
for i in range(N):
temp_s = list(sys.stdin.readline().rstrip())
temp_s = [int(i) for i in temp_s]
After.append(temp_s)
cnt = 0
for i in range(N):
for j in range(M):
if (Before[i][j] != After[i][j]):
if(flip(i, j)):
cnt += 1
else:
print(-1)
sys.exit()
print("%d" % cnt)
참고자료 [참고한 블로그]https://www.crocus.co.kr/1086
[리스트 문자열을 int 형태로 변환]https://shayete.tistory.com/entry/%EB%A6%AC%EC%8A%A4%ED%8A%B8%EC%9D%98-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84-int-%ED%98%95%ED%83%9C%EB%A1%9C-%EB%B3%80%ED%99%98