백준(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)
 
      
    
댓글남기기