#문제
1018번: 체스판 다시 칠하기
첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.
www.acmicpc.net
#풀이 & 학습한 내용
"체스판을 만드는 모든 경우를 시도하여 최적의 방법을 찾는 문제"입니다. 비교해야할 체스판은 시작점이 'W'인 경우와 'B'인 경우 2가지가 있는데, 둘 중 하나를 계산한 후, 8*8에서 빼주어 나머지 경우의 수를 구할 수 있습니다.
#소스코드(5,19번째 줄 주목)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
chess=[] #입력되는 체스판 저장할 리스트
N,M = map(int,input().split())
for i in range(N):
c = list(input()) #★문자열에 list()씌워서 문자 분리
chess.append(c)
minimum = (50*50/2) + 1
count = 0
for i in range(N-8+1):
for j in range(M-8+1): #(i,j)가 시작점
count = 0
for ii in range(i,i+8):
for jj in range(j,j+8):
if (ii+jj)%2==0 and chess[ii][jj]=='W':
count+=1
if (ii+jj)%2!=0 and chess[ii][jj]=='B':
count+=1
count = min(count,8*8-count) #★다른경우는 전체에서 빼서 구한다
if minimum > count:
minimum = count
print(minimum)
|
cs |
github.com/HoYoungChun/Algorithm_PS/blob/master/Brute-force/BOJ_1018.py
HoYoungChun/Algorithm_PS
Baekjoon Online Judge, Programmers problem solving by Python, C++ - HoYoungChun/Algorithm_PS
github.com
'Algorithm > Brute-force' 카테고리의 다른 글
[Python] 백준 1436번 : 영화감독 숌 (S5) - 브루트포스단계별5 (0) | 2021.01.28 |
---|---|
[Python] 백준 7568번 : 덩치 (S5) - 브루트포스단계별3 (0) | 2021.01.28 |
[Python] 백준 2231번 : 분해합 (B2) - 브루트포스단계별2 (0) | 2021.01.28 |
[Python] 백준 2798번 : 블랙잭 (B2) - 브루트포스단계별1 (0) | 2021.01.28 |
[C++] 백준 2798번 : 거꾸로 구구단 (B2) (0) | 2020.07.15 |