풀이 1
n,m=map(int,input().split())
board=list() for i in range(n): board.append(input())
min_numbers=[] for i in range(n-7): for j in range(m-7): cnt1 = 0 cnt2 = 0 for k in range(i, i+8): for l in range(j, j+8): ## 체스판 규칙에 따라서 ## (k+l)%2가 0이면 board[k][j]는 모두 같은 색이어야 하고 ## (k+l)%2가 1이면 board[k][j]는 모두 다른 색이어야 한다. if (k + l) % 2 == 0: if board[k][l] != ‘W’: cnt1 += 1 else: cnt2 += 1 else: if board[k][l] != ‘B’: cnt1 += 1 else: cnt2 += 1 print(cnt1, end=’|||’) print(cnt2)
좀 더 깔끔하게 푸는 법
board에서 자른 8*8 크기를 각각
W로 시작하는 체스판으로 채우는 수 + B로 시작하는 체스판으로 채우는 수는 항상 64이다
n, m = map(int, input().split())
board=list()#
for i in range(n):#
board.append(input())#
minnum=64 for i in range(n-7): for j in range(m-7): cnt = 0 for k in range(i, i+8): for l in range(j, j+8): if (k + l) % 2 == 0: if board[k][l] != ‘W’: cnt += 1 else: if board[k][l] != ‘B’: cnt += 1 if cnt>=32: cnt=64-cnt minnum=min(cnt,minnum)
print(minnum)
매번 입력하기 귀찮으니까
board=[ ‘BBBBBBBBWBWBW’, ‘BBBBBBBBBWBWB’, ‘BBBBBBBBWBWBW’, ‘BBBBBBBBBWBWB’, ‘BBBBBBBBWBWBW’, ‘BBBBBBBBBWBWB’, ‘BBBBBBBBWBWBW’, ‘BBBBBBBBBWBWB’, ‘WWWWWWWWWWBWB’, ‘WWWWWWWWWWBWB’, ]