https://www.acmicpc.net/problem/1018
1018번: 체스판 다시 칠하기
첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.
www.acmicpc.net

import sys
result1 = 0
result2 = 0
solution = -1
myMap = []
solMap1 = [['W','B','W','B','W','B','W','B'],
['B','W','B','W','B','W','B','W'],
['W','B','W','B','W','B','W','B'],
['B','W','B','W','B','W','B','W'],
['W','B','W','B','W','B','W','B'],
['B','W','B','W','B','W','B','W'],
['W','B','W','B','W','B','W','B'],
['B','W','B','W','B','W','B','W']]
solMap2 = [['B','W','B','W','B','W','B','W'],
['W','B','W','B','W','B','W','B'],
['B','W','B','W','B','W','B','W'],
['W','B','W','B','W','B','W','B'],
['B','W','B','W','B','W','B','W'],
['W','B','W','B','W','B','W','B'],
['B','W','B','W','B','W','B','W'],
['W','B','W','B','W','B','W','B']]
size = list(map(int, sys.stdin.readline().split()))
newMap = [[0]*size[1] for i in range(size[0])]
for i in range(size[0]):
myMap.append(list(map(str, sys.stdin.readline().split())))
for i in range(size[0]):
newMap[i] = list(myMap[i][0])
for k in range(size[1] - 7):
for kr in range(size[0] - 7):
for i in range(kr, kr+8):
for j in range(k, k+8):
if newMap[i][j] != solMap1[i-kr][j-k]:
result1 += 1
if newMap[i][j] != solMap2[i-kr][j-k]:
result2 += 1
if solution == -1:
solution = min(result1, result2)
else:
solution = min(result1, result2, solution)
result1 = 0
result2 = 0
print(solution)
'2022 하반기 > Python' 카테고리의 다른 글
백준 2750 Python (0) | 2023.02.07 |
---|---|
백준 1436 Python (0) | 2023.02.07 |
백준 7568 python (2) | 2023.02.02 |
백준 2231 python (0) | 2023.01.29 |
백준 2798 python (0) | 2023.01.26 |
댓글