본문 바로가기
2022 하반기/Python

백준 1018 python

by concho 2023. 2. 2.

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

 

1018번: 체스판 다시 칠하기

첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.

www.acmicpc.net

import sys

result1 = 0
result2 = 0
solution = -1
myMap = []
solMap1 = [['W','B','W','B','W','B','W','B'],
          ['B','W','B','W','B','W','B','W'],
          ['W','B','W','B','W','B','W','B'],
          ['B','W','B','W','B','W','B','W'],
          ['W','B','W','B','W','B','W','B'],
          ['B','W','B','W','B','W','B','W'],
          ['W','B','W','B','W','B','W','B'],
          ['B','W','B','W','B','W','B','W']]

solMap2 = [['B','W','B','W','B','W','B','W'],
          ['W','B','W','B','W','B','W','B'],
          ['B','W','B','W','B','W','B','W'],
          ['W','B','W','B','W','B','W','B'],
          ['B','W','B','W','B','W','B','W'],
          ['W','B','W','B','W','B','W','B'],
          ['B','W','B','W','B','W','B','W'],
          ['W','B','W','B','W','B','W','B']]

size = list(map(int, sys.stdin.readline().split()))
newMap = [[0]*size[1] for i in range(size[0])]

for i in range(size[0]):
    myMap.append(list(map(str, sys.stdin.readline().split())))


for i in range(size[0]):
    newMap[i] = list(myMap[i][0])

for k in range(size[1] - 7):
    for kr in range(size[0] - 7):
        for i in range(kr, kr+8):
            for j in range(k, k+8):
                if newMap[i][j] != solMap1[i-kr][j-k]:
                    result1 += 1
                if newMap[i][j] != solMap2[i-kr][j-k]:
                    result2 += 1
        if solution == -1:
            solution = min(result1, result2)
        else:
            solution = min(result1, result2, solution)
        result1 = 0
        result2 = 0
   
print(solution)

 

'2022 하반기 > Python' 카테고리의 다른 글

백준 2750 Python  (0) 2023.02.07
백준 1436 Python  (0) 2023.02.07
백준 7568 python  (2) 2023.02.02
백준 2231 python  (0) 2023.01.29
백준 2798 python  (0) 2023.01.26

댓글