๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

[๋ฐฑ์ค€] [Python] 1018๋ฒˆ_์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ_๋ธŒ๋ฃจํŠธ ํฌ์Šค

Dbswnstjd 2022. 9. 22. 16:56

๋ฌธ์ œ

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())
l = []
mini = []

for _ in range(n):
    l.append(input())

for a in range(n - 7):
    for i in range(m - 7):
        idx1 = 0
        idx2 = 0
        for b in range(a, a + 8):
            for j in range(i, i + 8):              # 8X8 ๋ฒ”์œ„๋ฅผ B์™€ W๋กœ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ๊ฒ€์‚ฌ
                if (j + b)%2 == 0:
                    if l[b][j] != 'W': idx1 += 1  
                    if l[b][j] != 'B': idx2 += 1
                else :
                    if l[b][j] != 'B': idx1 += 1
                    if l[b][j] != 'W': idx2 += 1
        mini.append(idx1)                          # W๋กœ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ์น ํ•ด์•ผ ํ•  ๋ถ€๋ถ„
        mini.append(idx2)                          # B๋กœ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ์น ํ•ด์•ผ ํ•  ๋ถ€๋ถ„

print(min(mini))                                   # ์น ํ•ด์•ผ ํ•˜๋Š” ๊ฐœ์ˆ˜์˜ ์ตœ์†Œ๊ฐ’