네 번 중첩되는 for 문이 사용될까 싶었는데 사용된다. 앞으로 브루트포스 문제를 만날 때면 시간 복잡도가 높아지는 것에 대해서 심적 부담감을 조금 내려 놓아 봐야 겠다.
N, M = list(map(int, input().split()))
chessboard = []
counts = []
for i in range(N):
value = input()
if len(value) != M:
raise ValueError('Check size of chessboard')
chessboard.append(value)
#print (chessboard)
for x in range(0, N - 8 + 1): # Abstract
for y in range(0, M - 8 + 1): # Abstract
white_start, black_start = 0, 0
for i in range(x, x + 8): # Concrete
for j in range(y, y + 8): # Concrete
if (i + j) % 2 == 0:
if chessboard[i][j] != "W":
white_start +=1
if chessboard[i][j] != "B":
black_start +=1
elif (i + j) % 2 == 1:
if chessboard[i][j] != "B":
white_start +=1
if chessboard[i][j] != "W":
black_start +=1
counts.append(white_start)
counts.append(black_start)
print (min(counts))
'Computer Science > 백준 알고리즘' 카테고리의 다른 글
[백준] 1065번 한수 (C++) (0) | 2022.03.11 |
---|---|
[백준] 1026번 보물 (파이썬) (0) | 2022.03.11 |
[백준] 1008번 A/B (C++) (0) | 2022.03.11 |
[백준] 1003번 피보나치 함수 (파이썬) (0) | 2022.03.11 |
[백준] 1001번 A-B (C++) (0) | 2022.03.11 |