Notice
Recent Posts
Recent Comments
Link
JiSoo's Devlog
[백준 / 파이썬] 1018번 체스판 다시 칠하기 본문
n, m = map(int, input().split())
a = []
for i in range(n):
a.append(input())
s=[]
for i in range(n-7):
for j in range(m-7):
fw = 0
fb = 0
for k in range(i, i+8):
for l in range(j, j+8):
if (k+l) % 2 == 0:
if a[k][l] != 'W':
fw += 1
if a[k][l] != 'B':
fb += 1
else:
if a[k][l] != 'B':
fw += 1
if a[k][l] != 'W':
fb += 1
s.append(fw)
s.append(fb)
print(min(s))
8*8로 잘라야 되기 때문에 행을 i-7, 열을 j-7로 고정시켜줘야 한다
중첩 for문으로 i와 j의 최대 크기 조절
(k + l ) % 2 == 0는 행과 열의 인덱스의 합이 짝수일 때 일정한 색, 홀수일 때 일정한 한 색을 가지기 때문이다
0,0(짝) | 0,1(홀) | 0,2(짝) | 0,3(홀) |
1,0(홀) | 1,1(짝) | 1,2(홀) | 1,3(짝) |
2,0(짝) | 2,1(홀) | 2,2(짝) | 2,3(홀) |
3,0(홀) | 3,1(짝) | 3,2(홀) | 3,3(짝) |
이런 식으로 인덱스의 합이 짝수인지 홀수인지로 체크무늬 판단 가능
728x90
'코테준비' 카테고리의 다른 글
[백준 / 파이썬] 2164번 카드2 (0) | 2024.01.12 |
---|---|
[백준 / 파이썬] 1929번 소수 구하기 (0) | 2024.01.12 |
[백준 / 파이썬] 1920번 수 찾기 (0) | 2024.01.12 |
[백준 / 파이썬] 10828번 스택 (0) | 2024.01.11 |
[백준 / 파이썬] 10816번 숫자 카드2 (0) | 2024.01.11 |