백준(1018) - 체스판 다시 칠하기 Python
백준(1018) - 체스판 다시 칠하기
문제풀이: 구현, 파이썬
해결방법
-
입력받은 행렬의 크기에서 8 * 8행렬이 가능한 부분을 확인하고
-
8 * 8 의 완성된 체스판이랑 비교해서 작은 값을 출력하면된다.
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
board = []
for i in range(n):
board.append(input().rstrip())
temp_W = ['WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW']
temp_B = ['BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB', 'BWBWBWBW', 'WBWBWBWB']
def check(board, y, x):
cntW = 0
cntB = 0
for i in range(8):
for j in range(8):
if board[y + i][x + j] != temp_W[i][j]:
cntW += 1
if board[y + i][x + j] != temp_B[i][j]:
cntB += 1
return min(cntW, cntB)
answer = int(1e9)
for i in range(n - 8 + 1):
for j in range(m - 8 + 1):
answer = min(answer, check(board, i, j))
print(answer)
댓글남기기