๐Ÿค–/๋ฐฑ์ค€

๋ฐฑ์ค€ 1018: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ (Python)

sssbin 2021. 9. 9. 12:24

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

 

1018๋ฒˆ: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ

์ฒซ์งธ ์ค„์— N๊ณผ M์ด ์ฃผ์–ด์ง„๋‹ค. N๊ณผ M์€ 8๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๋ณด๋“œ์˜ ๊ฐ ํ–‰์˜ ์ƒํƒœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. B๋Š” ๊ฒ€์€์ƒ‰์ด๋ฉฐ, W๋Š” ํฐ์ƒ‰์ด๋‹ค.

www.acmicpc.net

 

n, m = map(int, input().split())
board = []
cnt = []

for i in range(n):
    board.append(input())

for a in range(n-7):
    for b in range(m-7):
        idx1 = 0
        idx2 = 0
        for i in range(a, a+8):
            for j in range(b, b+8):
                if (i + j) % 2 == 0:
                    if board[i][j] != 'W':
                        idx1 += 1
                    if board[i][j] != 'B':
                        idx2 += 1
                else:
                    if board[i][j] != 'B':
                        idx1 += 1
                    if board[i][j] != 'W':
                        idx2 += 1                 
        cnt.append(min(idx1, idx2))

print(min(cnt))

 

์ฒด์ŠคํŒ์€ ๋งจ ์ฒซ ์นธ์ด W ๋˜๋Š” B๋กœ ์‹œ์ž‘ํ•จ

๋”ฐ๋ผ์„œ W๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์™€ B๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆ ์„œ ๊ฐ๊ฐ ๋‹ค์‹œ ์น ํ•ด์•ผ ํ•˜๋Š” ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•ด ์ตœ์†Œ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค