์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. N๊ณผ M์ 8๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ณด๋์ ๊ฐ ํ์ ์ํ๊ฐ ์ฃผ์ด์ง๋ค. B๋ ๊ฒ์์์ด๋ฉฐ, W๋ ํฐ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ง๋ฏผ์ด๊ฐ ๋ค์ ์น ํด์ผ ํ๋ ์ ์ฌ๊ฐํ ๊ฐ์์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
8X8 ์ฒด์คํ์ ๋ชจ๋ ์ขํ๋ฅผ ํ์ํด์ ํด๋น ์์น์ W(ํน์ B)๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ count ํ๋ค.
ํด๊ฒฐ ๊ณผ์
8X8๋ณด๋ค ํฐ ์ฒด์คํ์ด ์ ๋ ฅ๋ ๊ฒฝ์ฐ ์์ ์ง์ ์ ๋๋๋ค.
ex)
9X8 > [0][0]๊ณผ [1][0] : 2๊ฐ์ ์์ ์ง์
10X13 > [0][0], [0][1], [0][2], [0][3], [0][4], [0][5], [1][0], ... [2][0], ... , [2][5] : 18๊ฐ์ ์์ ์ง์
๊ฐ ์์ ์ง์ ์ ๋ฐ๋ผ 8X8์ ์ฒด์คํ์ ํ์ํ๋ค.
ํ์์ด ์ข ๋ฃ๋๋ฉด count ํ ๊ฐ์ ์๋ก์ด ๋ฐฐ์ด์ ์ ์ฅํ๋ค.
๋ชจ๋ ๊ณผ์ ์ด ์ข ๋ฃ๋๋ฉด min ํจ์๋ฅผ ์ด์ฉํ์ฌ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
์ต์ข ์ฝ๋๋
def main():
n, m = map(int, input().split())
chess = [[0] for _ in range(n)]
result = []
for i in range(n):
chess[i] = list(input())
for i in range(n-7):
for j in range(m-7):
startW = 0
startB = 0
for k in range(i, i+8):
for l in range(j, j+8):
if (k+l)%2 == 0: # (0,0), (0,2), (2,0), ...
if chess[k][l] != "W":
startW += 1
if chess[k][l] != "B":
startB += 1
else:
if chess[k][l] != "B":
startW += 1
if chess[k][l] != "W":
startB += 1
result.append(startW)
result.append(startB)
print(min(result))
if __name__ == "__main__":
main()
startW๋ [0][0], ์ฆ ์์ ์ง์ ์ด W์ผ ๋ ์น ํด์ผํ๋ ์๊น์ด๋ค. (startB๋ ์์ ์ง์ ์ด B์ผ ๋)
'โ๏ธ ์ฝํ ์ค๋น > Brute Force' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ธ๋ฃจํธ ํฌ์ค / Python] BOJ 1436 - ์ํ๊ฐ๋ ์ (0) | 2021.01.11 |
---|---|
[๋ธ๋ฃจํธ ํฌ์ค / Python] BOJ 2231 - ๋ถํดํฉ (0) | 2021.01.11 |
[๋ธ๋ฃจํธ ํฌ์ค / Python] BOJ 2798 - ๋ธ๋์ญ (0) | 2021.01.07 |
[๋ธ๋ฃจํธ ํฌ์ค / Python] BOJ 7568 - ๋ฉ์น (0) | 2020.12.21 |