ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90

๐Ÿšฉ ๋ธŒ๋ฃจํŠธํฌ์Šค

 

thinking

  W๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ  

    โ—พ  WBWBWBWB -> W๋กœ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ์ฒซ๋ฒˆ์งธ์นธ์ด W๊ฐ€ ์•„๋‹ˆ๋ฉด ๋‹ค์‹œ ์น ํ•ด์•ผํ•จ

    โ—พ  BWBWBWBW -> W๋กœ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ๋‘๋ฒˆ์งธ์นธ์ด B๊ฐ€ ์•„๋‹ˆ๋ฉด ๋‹ค์‹œ ์น ํ•ด์•ผํ•จ

  B๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ  

    โ—พ  BWBWBWBW -> B๋กœ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ์ฒซ๋ฒˆ์งธ์นธ์ด B๊ฐ€ ์•„๋‹ˆ๋ฉด ๋‹ค์‹œ ์น ํ•ด์•ผํ•จ

    โ—พ  WBWBWBWB -> B๋กœ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ๋‘๋ฒˆ์งธ์นธ์ด W๊ฐ€ ์•„๋‹ˆ๋ฉด ๋‹ค์‹œ ์น ํ•ด์•ผํ•จ

 

⇒ WBWB or BWBW๊ฐ€ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ๋‚˜์˜ค๋‹ˆ๊นŒ ํ–‰+์—ด ์ธ๋ฑ์Šค์˜ ํ•ฉ์„ 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋กœ ์ƒ๊ฐ (0101 ์ด๋Ÿฐ์‹์œผ๋กœ)

 

์ฝ”๋“œ

N, M = map(int, input().split())  # N:ํ–‰ M:์—ด
a = [list(input()) for _ in range(N)]

res = []
# 8x8 ์ฒด์ŠคํŒ ํƒ์ƒ‰
for i in range(N-7):
    for j in range(M-7):
        w_cnt, b_cnt = 0, 0  # w_cnt:W๋กœ ์‹œ์ž‘ํ•  ๋•Œ ๋‹ค์‹œ ์น ํ•ด์•ผํ•˜๋Š” ๊ฐœ์ˆ˜, b_cnt:B๋กœ ์‹œ์ž‘ํ•  ๋•Œ ๋‹ค์‹œ ์น ํ•ด์•ผํ•˜๋Š” ๊ฐœ์ˆ˜
        for k in range(i, i+8):
            for l in range(j, j+8):
                if (k+l) % 2 == 0:  # ํ–‰+์—ด ์ธ๋ฑ์Šค์˜ ๋‚˜๋จธ์ง€๋กœ ์ ‘๊ทผ
                    if a[k][l] != 'W':  # W๋กœ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ์ฒซ๋ฒˆ์งธ์นธ์ด W๊ฐ€ ์•„๋‹ˆ๋ฉด ๋‹ค์‹œ ์น ํ•ด์•ผํ•จ
                        w_cnt += 1
                    if a[k][l] != 'B':
                        b_cnt += 1
                else:
                    if a[k][l] != 'B':  # W๋กœ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ๋‘๋ฒˆ์งธ์นธ์ด B๊ฐ€ ์•„๋‹ˆ๋ฉด ๋‹ค์‹œ ์น ํ•ด์•ผํ•จ
                        w_cnt += 1
                    if a[k][l] != 'W':
                        b_cnt += 1
        res.append(w_cnt)
        res.append(b_cnt)
print(min(res))

 

 

ํ•œ์ค„ํ›„๊ธฐ

๋‚˜๋จธ์ง€ ์ ‘๊ทผ์„ ๊ธฐ์–ตํ•˜์ž

๋Œ“๊ธ€