동캄의 코딩도장

백준 1018 [체스판 다시 칠하기] 파이썬 본문

코테/BOJ

백준 1018 [체스판 다시 칠하기] 파이썬

동 캄 2022. 2. 12. 18:35

https://www.acmicpc.net/problem/1018

 

1018번: 체스판 다시 칠하기

첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.

www.acmicpc.net

# 백준 1018
N, M = map(int, input().split())
field = []
answer = 10000000
w_row = 'WBWBWBWB'
b_row = 'BWBWBWBW'
for _ in range(N):
    field.append(list(map(str, input())))
for i in range(N-7):
    for j in range(M-7):
        f_diff = 0
        s_diff = 0
        for k in range(i, i+8):
            row = field[k][j:j+8]
            for v in range(8):
                if k % 2 == 0:
                    if w_row[v] != row[v]:
                        f_diff += 1
                    if b_row[v] != row[v]:
                        s_diff += 1
                else:
                    if b_row[v] != row[v]:
                        f_diff += 1
                    if w_row[v] != row[v]:
                        s_diff += 1
        answer = min(answer, f_diff, s_diff)
print(answer)

 

피곤한 문제다...

'코테 > BOJ' 카테고리의 다른 글

백준 2164 [카드 2] 파이썬  (0) 2022.02.12
백준 1920 [수 찾기] 파이썬  (0) 2022.02.12
백준 2231 [분해합] 파이썬  (0) 2022.02.12
백준 2493 [탑] 파이썬  (0) 2022.02.12
백준 2467 [용액] 파이썬  (0) 2022.02.12