[BOJ][Python]체스판 다시 칠하기 #1018

MEIN_FIGUR·2021년 9월 19일
0

백준_문제풀이

목록 보기
21/21
post-custom-banner

https://www.acmicpc.net/problem/1018


📌풀이


내가 쓴 풀이(성공)

  • 범위 내에서 가능한 모든 체스판 확인(Brute Force)
  • tmp1W로 시작하는 체스판, tmp2B로 시작하는 체스판
  • c1tmp1로 색칠할 때 바꿔야 하는 판 개수, c2tmp2로 색칠할 때 바꿔야 하는 판 개수
  • 가장 작은 판 개수 찾아서 출력
n, m = map(int, input().split())
l1, l2 = 'WB'*4, 'BW'*4
arr = [input() for _ in range(n)]
res = 64
for iy in range(n-8+1):
    for ix in range(m-8+1):
        c1, c2 = 0, 0

        for y in range(8):
        #tmp1은 W로 시작하는 체스판, tmp2는 B로 시작하는 체스판
            if y % 2: 
                tmp1, tmp2 = l1, l2
            else:
                tmp2, tmp1 = l1, l2
            for x in range(8):
                if arr[iy+y][ix+x] != tmp1[x]:
                    c1 += 1
                elif arr[iy+y][ix+x] != tmp2[x]:
                    c2 += 1

        res = min(res, c1, c2)

print(res)



📌후기


완전 탐색으로 해결하였다! 탐색하는 방법이 어렵지 않아서 무난하게 해결할 수 있었다!

profile
Growing Developer
post-custom-banner

0개의 댓글