Skip to content

Commit

Permalink
[Silver IV] Title: 체스판 다시 칠하기, Time: 68 ms, Memory: 32412 KB -Baekjoo…
Browse files Browse the repository at this point in the history
…nHub
  • Loading branch information
boyamie committed Jan 15, 2025
1 parent de01d76 commit b93abde
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
32 changes: 32 additions & 0 deletions 백준/Silver/1018. 체스판 다시 칠하기/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# [Silver IV] 체스판 다시 칠하기 - 1018

[문제 링크](https://www.acmicpc.net/problem/1018)

### 성능 요약

메모리: 32412 KB, 시간: 68 ms

### 분류

브루트포스 알고리즘

### 제출 일자

2025년 1월 15일 14:03:38

### 문제 설명

<p>지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다.</p>

<p>체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다.</p>

<p>보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 8×8 크기의 체스판으로 잘라낸 후에 몇 개의 정사각형을 다시 칠해야겠다고 생각했다. 당연히 8*8 크기는 아무데서나 골라도 된다. 지민이가 다시 칠해야 하는 정사각형의 최소 개수를 구하는 프로그램을 작성하시오.</p>

### 입력

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

### 출력

<p>첫째 줄에 지민이가 다시 칠해야 하는 정사각형 개수의 최솟값을 출력한다.</p>

Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import sys
input = sys.stdin.readline
n, m = map(int, input().split())

lst = [input().rstrip() for _ in range(n)]
cnt = []

for h in range(n-7):
for w in range(m-7):
black = 0
white = 0
for i in range(h,h+8):
for j in range(w,w+8):
if(i+j)%2 == 0:
if lst[i][j] != 'W':
white += 1
else:
black += 1
else:
if lst[i][j] != 'W':
black += 1
else:
white += 1
cnt.append(white)
cnt.append(black)
print(min(cnt))

0 comments on commit b93abde

Please sign in to comment.