https://www.acmicpc.net/problem/1018
8*8 체스판을 만들기 위해 공간확보 필요(range(n-7), range(m-7))
흰색으로 시작할 경우, 검은색으로 시작할 경우별로 경우의 수를 모두 구해서
최솟값(min) 출력.
구상은 했지만 코드를 짜는데 어려움을 많이 겪어 구글링을 많이 한 문제다. 꾸준히 복습해서 제대로 흡수합시다
내 제출
n, m = map(int, input().split()) # 열, 행
board = []
cnt = []
for _ in range(n): # 열만큼 반복
board.append(input())
for a in range(n-7):
for b in range(m-7): #8*8로 자르기 위해, -7해준다 (8*8 공간 확보)
w_index = 0 # 흰색으로 시작
b_index = 0 # 검은색으로 시작
for i in range(a, a+8): # 시작지점
for j in range(b, b+8): # 시작지점
if (i+j)%2 == 0: # 짝수인 경우
if board[i][j] == 'B': # B일 경우
w_index+= 1 # W로 칠하는 갯수
else: # W일 경우
b_index+= 1 # B로 칠하는 갯수
else: #홀수인 경우
if board[i][j] == 'B': # B일 경우
b_index+= 1 # B로 칠하는 갯수
else: # W일 경우
w_index+= 1 # W로 칠하는 갯수
cnt.append(w_index) # W로 시작하는 경우의 수
cnt.append(b_index) # B로 시작하는 경우의 수
print(min(cnt))