Algorithm Problem/Python

[python] ๋ฐฑ์ค€ - 1018. ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ

deo2kim 2021. 9. 22. 19:56
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  • ์ง์ˆ˜์นธ((i + j) % 2 == 0)๊ณผ ํ™€์ˆ˜์นธ์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ƒ‰์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด
    • ์ง์ˆ˜์นธ์— ํฐ์ƒ‰ 30, ๊ฒ€์€์ƒ‰ 2
    • ํ™€์ˆ˜๊ฐ„์— ๊ฒ€์€์ƒ‰ 32, ํฐ์ƒ‰ 0 ์ด ์žˆ๋‹ค๋ฉด
    • ์ง์ˆ˜์นธ์˜ ๊ฒ€์€์ƒ‰ 2 ๋ฅผ ํฐ์ƒ‰์œผ๋กœ ์น ํ•˜๋ฉด ์™„๋ฒฝํ•œ ์ฒด์ŠคํŒ์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.
    • ๋ฐ˜๋Œ€๋กœ ์ง์ˆ˜์นธ ํฐ์ƒ‰ 30 ์„ ๊ฒ€์€์ƒ‰์œผ๋กœ, ํ™€์ˆ˜์นธ ๊ฒ€์€์ƒ‰ 32 ๋ฅผ ํฐ์ƒ‰์œผ๋กœ ๋งŒ๋“ค์–ด๋„ ์™„๋ฒฝํ•œ ์ฒด์ŠคํŒ์ด ๋˜์ง€๋งŒ 62 ๊ฐœ๋ฅผ ์น ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ „์ž๊ฐ€ ๋” ์ตœ์†Œ์ธ ๊ฒฝ์šฐ์ด๋‹ค.
  • ์ง์ˆ˜์นธ์˜ ํฐ์ƒ‰ + ํ™€์ˆ˜์นธ์˜ ๊ฒ€์€์ƒ‰, ์ง์ˆ˜์นธ์˜ ๊ฒ€์€์ƒ‰ + ํ™€์ˆ˜์นธ์˜ ํฐ์ƒ‰ ์ค‘ ์ตœ์†Œ์ธ ๊ฐ’์„ ๊ณ„์† ๊ฐฑ์‹ ํ•ด์ค€๋‹ค.

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

import sys


def paint(x, y):
    color = [
        [0, 0],
        [0, 0]
    ]
    for i in range(x, x + 8):
        for j in range(y, y + 8):
            if (i + j) % 2 == 0:
                if board[i][j] == 'W':
                    color[0][0] += 1
                else:
                    color[1][0] += 1
            else:
                if board[i][j] == 'B':
                    color[0][1] += 1
                else:
                    color[1][1] += 1

    # print(color)
    return min(sum(color[0]), sum(color[1]))


if __name__ == '__main__':
    input = sys.stdin.readline

    N, M = map(int, input().split())
    board = [list(input().strip()) for _ in range(N)]

    answer = 1e9 # ์ตœ์†Œ๊ฐ’ ์ฐพ๊ธฐ
    for i in range(0, N - 8 + 1):
        for j in range(0, M - 8 + 1):
            # ์‹œ์ž‘์ 
            answer = min(answer, paint(i, j))

    print(answer)

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: BACKJOON ONLINE JUDGE

 

 

๋ฐ˜์‘ํ˜•