MxN크기의 보드를 8x8크기의 체스판으로 만들려고한다. 체스판은 흰색과 검은색이 번갈아서 칠해져야하며, 변을 공유하는 두개의 사각형은 다른 색으로 칠해져 있어야 한다. 체스판을 색칠하는 경우는 맨 왼쪽 위칸이 흰색인 / 검은색인 경우이다. 다시 칠해야하는 정사각형의 최소 개수를 구하는 프로그램을 작성하라 —가 문제이다. 
브루트포스 알고리즘이라고 힌트를 주니,, 모든 경우를 확인해야 할 것 같다.
아이디어는
1. 크기와 보드의 각 행의 상태를 받는다.
2. 맨 왼쪽 위칸이 흰색/검은색인 경우에 대해 8x8씩 확인을 하고, 칠해야할 개수를 저장한다.
N - 7, M = 7로 한다.import sys
input = sys.stdin.readline
N, M = map(int, input().split()) #N 행개수, M 열개수
board = [ input() for line in range(N) ]
drawCount = []
for row in range(N - 7): #첫행 위치 제한
for col in range(M - 7): #첫열 위치 제한
Bdraw = 0
Wdraw = 0
for i in range(row, row + 8):
for j in range(col, col + 8):
if (i + j) % 2 == 0:
if board[i][j] != 'B':
Bdraw += 1
if board[i][j] != 'W':
Wdraw += 1
else:
if board[i][j] != 'W':
Bdraw += 1
if board[i][j] != 'B':
Wdraw += 1
drawCount.append(Bdraw)
drawCount.append(Wdraw)
print(min(drawCount))