1018 체스판 다시 칠하기

장종민·2023년 9월 2일

boj

목록 보기
21/22


n, m = map(int, input().split())
board = []
for _ in range(n):
    board.append(input())
 
# 검은색 시작 기준
color = {0 : "B", 1 : "W"}
 
paint_list = []
# 시작점
for x_start in range(n - 7): # 위아래로 8칸 미만시 시작점이 될 수 없음
    for y_start in range(m - 7):
        paint = 0
        # 흰색, 검은색 시작 경우
        paint_w, paint_b = 0, 0
        for x in range(x_start, x_start + 8):
            for y in range(y_start, y_start + 8):
                    # 검은색 시작일 때 틀린 경우
                    if board[x][y] != color[(x + y)%2]: 
                        paint_b += 1            
                    # 흰색 시작일 때 틀린 경우                
                    else:
                        paint_w += 1
        paint = min(paint_b, paint_w)                
        paint_list.append(paint)
 
print(min(paint_list))
profile
비전공 오르미부트캠프 2기

0개의 댓글