목차

체스판 다시 칠하기

ps
링크acmicpc.net/…
출처BOJ
문제 번호1018
문제명체스판 다시 칠하기
레벨실버 4
분류

브루트포스

시간복잡도O(NM)
인풋사이즈N<=50, M<=50
사용한 언어Python
제출기록29200KB / 92ms
최고기록56ms
해결날짜2021/10/10

풀이

코드

"""Solution code for "BOJ 1018. 체스판 다시 칠하기".

- Problem link: https://www.acmicpc.net/problem/1018
- Solution link: http://www.teferi.net/ps/problems/boj/1018
"""


def main():
    N, M = [int(x) for x in input().split()]
    board = [input() for _ in range(N)]
    min_count = 64
    for y in range(N - 7):
        for x in range(M - 7):
            t = 'W'
            count = 0
            for xx in range(8):
                for yy in range(8):
                    if board[y + yy][x + xx] == t:
                        count += 1
                    t = 'B' if t == 'W' else 'W'
                t = 'B' if t == 'W' else 'W'
            min_count = min(min_count, count, 64 - count)
    print(min_count)


if __name__ == '__main__':
    main()