티스토리 뷰
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 |
댓글