728x90
https://www.acmicpc.net/problem/1018
def change_color(matrix, index_row, index_col):
board1 = ['BWBWBWBW','WBWBWBWB','BWBWBWBW','WBWBWBWB','BWBWBWBW','WBWBWBWB','BWBWBWBW','WBWBWBWB',]
board2 = ['WBWBWBWB','BWBWBWBW','WBWBWBWB','BWBWBWBW','WBWBWBWB','BWBWBWBW','WBWBWBWB','BWBWBWBW',]
result1 = 0
result2 = 0
for r in range(8):
for c in range(8):
if not board1[r][c] == matrix[index_row + r][index_col + c]:
result1 += 1
if not board2[r][c] == matrix[index_row + r][index_col + c]:
result2 += 1
return min(result1, result2)
n, m = map(int, input().split())
board = [input() for _ in range(n)]
result = 64
for i in range(n+1-8):
for j in range(m+1-8):
tmp = change_color(board, i, j)
if result > tmp:
result = tmp
print(result)
두가지 경우의 수(왼쪽위가 B로 시작하는 판, W로 시작하는 판)을 미리 적어두고,
모든 인덱스에 해당하는 8*8판들을 비교해가면서 가장 적게 변화하는 값을 찾았다.
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 10163 색종이 (0) | 2021.02.22 |
---|---|
[백준] 2851 슈퍼마리오 (0) | 2021.02.22 |
[백준] 7568 덩치 (0) | 2021.02.20 |
[백준] 2231 분해합 (0) | 2021.02.20 |
[백준] 1436 영화감독 숌 (0) | 2021.02.20 |