알고리즘: 완전탐색(Brute Force)
- 입력: n, m을 입력받아 n 줄의 문자열을 리스트에 저장
- 8×8 크기의 체스판 모두 탐색 => n-7, m-7 범위에서 모두 탐색
- 첫 칸이 B, W 인 경우 모두 탐색
- 2차원 배열 좌표 합의 나머지 규칙으로 인접한 사각형이 같은 색인 경우 칠하는 개수 카운팅
- B, W 로 시작하는 경우 중 작은 값 n-7, m-7 범위 카운팅 리스트에 저장
- 출력: 카운팅 리스트에서 최소값을 출력
해결 코드
n,m=map(int,input().split())
board=list()
cnt=list()
for _ in range(n):
board.append(input())
for i in range(n-7):
for j in range(m-7):
blackCase=0
whiteCase=0
for a in range(i,i+8):
for b in range(j,j+8):
if (a+b)%2==0:
if board[a][b]!='B':
blackCase+=1
if board[a][b]!='W':
whiteCase+=1
else:
if board[a][b]!='W':
blackCase+=1
if board[a][b]!='B':
whiteCase+=1
cnt.append(min(blackCase,whiteCase))
print(min(cnt))