https://www.acmicpc.net/problem/1018
tmp1
은 W
로 시작하는 체스판, tmp2
는 B
로 시작하는 체스판c1
은 tmp1
로 색칠할 때 바꿔야 하는 판 개수, c2
는 tmp2
로 색칠할 때 바꿔야 하는 판 개수n, m = map(int, input().split())
l1, l2 = 'WB'*4, 'BW'*4
arr = [input() for _ in range(n)]
res = 64
for iy in range(n-8+1):
for ix in range(m-8+1):
c1, c2 = 0, 0
for y in range(8):
#tmp1은 W로 시작하는 체스판, tmp2는 B로 시작하는 체스판
if y % 2:
tmp1, tmp2 = l1, l2
else:
tmp2, tmp1 = l1, l2
for x in range(8):
if arr[iy+y][ix+x] != tmp1[x]:
c1 += 1
elif arr[iy+y][ix+x] != tmp2[x]:
c2 += 1
res = min(res, c1, c2)
print(res)
완전 탐색으로 해결하였다! 탐색하는 방법이 어렵지 않아서 무난하게 해결할 수 있었다!