-코드
n, m = map(int, input().split())
arr = [input() for _ in range(n)]
r = []
for a in range(n - 7):
for b in range(m - 7):
r1 = 0
r2 = 0
for i in range(a, a + 8):
for j in range(b, b + 8):
if (j + i) % 2 == 0:
if arr[i][j] == 'W':
r1 += 1
if arr[i][j] == 'B':
r2 += 1
else:
if arr[i][j] == 'B':
r1 += 1
if arr[i][j] == 'W':
r2 += 1
r.append(min(r1, r2))
print(min(r))
처음에 문제를 잘못 읽어서 그냥 n * m의 보드의 다시 색칠해야 하는 부분의 개수로 만들다가 출력이 이상하게 나와서 다시 읽어보니 8 * 8로 잘라서 그 안에서 색칠할 개수가 가장 적은 보드의 색칠할 개수를 구하는 것이었습니다. 그래서 처음에는 count를 가지고 해결을 하려다가 결국 해결을 하지 못해서 질문 게시판을 찾아보니 for문을 이용하는 것이 쉽게 해결할 것 같아서 제가 혼자서 해결하지 못해서 아쉽지만 해결을 하였습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬]20359번 A simple task (0) | 2021.04.23 |
---|---|
[백준/파이썬]13771번 Presents (0) | 2021.04.23 |
[백준/파이썬]19155번 Copying Homework (0) | 2021.04.22 |
[백준/파이썬]9286번 Gradabase (0) | 2021.04.22 |
[백준/파이썬]5220번 Error Detection (0) | 2021.04.22 |