알고리즘: 완전탐색(Brute Force)

  1. 입력: n, m을 입력받아 n 줄의 문자열을 리스트에 저장
  2. 8×8 크기의 체스판 모두 탐색 => n-7, m-7 범위에서 모두 탐색
  3. 첫 칸이 B, W 인 경우 모두 탐색
  4. 2차원 배열 좌표 합의 나머지 규칙으로 인접한 사각형이 같은 색인 경우 칠하는 개수 카운팅
  5. B, W 로 시작하는 경우 중 작은 값 n-7, m-7 범위 카운팅 리스트에 저장
  6. 출력: 카운팅 리스트에서 최소값을 출력

해결 코드

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))

'Etc > PS' 카테고리의 다른 글

BOJ_10026 적록색약 - Python3  (1) 2022.07.14
BOJ_2178 미로 탐색 - Python3  (0) 2022.07.14
BOJ_11279 최대 힙 - Python3  (1) 2022.07.11
BOJ_1927 최소 힙 - Python3  (0) 2022.07.11
BOJ_1996 프린터 큐 - Python3  (0) 2022.07.08

+ Recent posts