반응형
Prob
Approach
랜던함 8 X 8 선택 중 최솟값이므로 전수조사한다.
문제에 힌트가 있다. 맨 왼쪽 위 칸이 흰색인 경우와 검은색인 경우만 존재한다.
각 8 X 8판에서 맨 왼쪽 위 칸을 흰색인 경우와 검은색인 경우로 가정하여
색칠할 경우의 최솟값을 구한다.
이 계산을 모든 8 X 8에 대해 계산한다.
Code
def cal_cnt(board):
cnt_w = 0
cnt_b = 0
for i in range(8):
for j in range(8):
#if board[0][0] == w
if ((i + j) % 2 == 1 and board[i][j] == "W"):
cnt_w += 1
elif ((i + j) % 2 == 0 and board[i][j] == "B"):
cnt_w += 1
#if board[0][0] == b
if ((i + j) % 2 == 0 and board[i][j] == "W"):
cnt_b += 1
elif ((i + j) % 2 == 1 and board[i][j] == "B"):
cnt_b += 1
return min(cnt_w, cnt_b)
if __name__ == "__main__" :
N, M = map(int, input().split())
board = []
for i in range(N):
board.append([ch for ch in input()])
aws = 8 * 8
for i in range(N - 7):
for j in range(M - 7):
slice_board = [one_row[j:j+8] for one_row in board[i:i+8]]
cnt = cal_cnt(slice_board)
aws = min(cnt, aws)
print(aws)
출처
반응형
'프로젝트 > Baekjoon' 카테고리의 다른 글
BAEKJOON PYTHON 2750 수 정렬하기 (0) | 2021.08.30 |
---|---|
BAEKJOON PYTHON 1436 영화감독 숌 (0) | 2021.08.23 |
BAEKJOON PYTHON 2231 분해합 (0) | 2021.08.23 |
BAEKJOON PYTHON 7568 덩치 (0) | 2021.08.23 |
BAEKJOON PYTHON 2798 블랙잭 (0) | 2021.08.21 |