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

문제 링크

문제링크

첫 번째 풀이

정답코드

n이 작아서 $O(n^2)$으로 진행해도 문제 없습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import sys
from math import pi, sqrt
from collections import deque

# sys.stdin = open("input.txt", 'r')

n, m = map(int, input().split())
for _ in range(n):
    arr.append(list(input()))
ans = 1e9
for i in range(0, n - 7):
    for j in range(0, m - 7):
        for target in ['W', 'B']:
            cnt = 0
            for r in range(8):
                for c in range(8):
                    if (i + j + r + c) % 2 == 0 and arr[i + r][j + c] != target:
                        cnt += 1
                    elif (i + j + r + c) % 2 == 1 and arr[i + r][j + c] == target:
                        cnt += 1
            ans = min(ans, cnt)
print(ans)

Success Notice: 수고하셨습니다. :+1:

Leave a comment