티스토리 뷰
8*8의 정상적인 체스판을 2가지 준비한다.(왼쪽 위가 흰색일 때와 검은색일때)
이후 입력받은 체스판과 비교하며 다시 칠해야 하는 부분이 가장 적은 횟수를 골라 출력한다.
문제풀이
N, M = map(int, input().split()) board = [[0] * 50 for i in range(50)] rst = 64 whiteboard = [["WBWBWBWB"], ["BWBWBWBW"], ["WBWBWBWB"], ["BWBWBWBW"], ["WBWBWBWB"], ["BWBWBWBW"], ["WBWBWBWB"], ["BWBWBWBW"]] blackboard = [["BWBWBWBW"], ["WBWBWBWB"], ["BWBWBWBW"], ["WBWBWBWB"], ["BWBWBWBW"], ["WBWBWBWB"], ["BWBWBWBW"], ["WBWBWBWB"]] def white(x, y): #왼쪽 상단이 흰색일때 cnt = 0 for RPT in range(y, y+8): for rpt in range(x, x+8): if whiteboard[RPT - y][0][rpt - x] != board[RPT][rpt]: cnt += 1 return cnt def black(x, y): #왼쪽 상단이 검은색일때 cnt = 0 for RPT in range(y, y+8): for rpt in range(x, x+8): if blackboard[RPT - y][0][rpt - x] != board[RPT][rpt]: cnt += 1 return cnt for RPT in range(0,N): #입력 받은 체스판을 보드에 입력 line = input() for rpt in range(0,M): board[RPT][rpt] = line[rpt] for RPT in range(0,N-7): #입력 받은 체스판과 기존의 체스판을 비교 for rpt in range(0,M-7): rst = min(rst,white(rpt,RPT),black(rpt,RPT)) print(rst)
'문제 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
[python3] 1085번 직사각형에서 탈출 (0) | 2019.03.14 |
---|---|
[python3] 10773번 제로 (0) | 2019.03.12 |
[python3] 2941번 크로아티아 알파벳 (0) | 2019.03.11 |
[python3] 2902번 KMP는 왜 KMP일까? (0) | 2019.03.10 |
[python3] 11365번 !밀비 급일 (0) | 2019.03.09 |
댓글