250x250
Notice
Recent Posts
Recent Comments
Link
job다한 공부
백준 1018번: 체스판 다시 칠하기-파이썬(python) 본문
728x90
https://www.acmicpc.net/problem/1018
1018번: 체스판 다시 칠하기
첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.
www.acmicpc.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#체스판 다시칠하기-두가지 경우로 나눠서 생각하가
a,b=map(int,input().split())
lst=[[0 for j in range(b)]for i in range(a)]
for i in range(a):
lst[i]=list(input())
#입력 완료 후 각 칸에 대해 검사하기
check=[[0 for j in range(b)]for i in range(a)]
max=0
for i in range(a-7):
for j in range(b-7):
tmp=0
for k in range(i,i+8):
for t in range(j,j+8):
if (k-i+t-j)%2==0: #짝수일때
if lst[k][t]=="W":
tmp+=1
else: #홀수일때
if lst[k][t]=="B":
tmp+=1
for k in range(i,i+8):
for t in range(j,j+8):
if (k+t-i-j)%2==0: #짝수일때
if lst[k][t]=="B":
check[i][j]+=1
else: #홀수일때
if lst[k][t]=="W":
check[i][j]+=1
if tmp>check[i][j]:
check[i][j]=tmp
if max<check[i][j]:
max=check[i][j]
print(64-max)
##문제= 만약 첫째빼고 다 일치해버린다면 어떻게 해야하나-둘 다 검사 돌려
|
cs |
+실수했던 부분이 첫 좌표 가지고 다 돌려버렸는데 그러는게 아니라 w,b기준으로 둘 다 돌려서 더 많이 해당되는 경우의 수를 찾아줘야한다.
728x90
'백준 > 브루트포스' 카테고리의 다른 글
백준 1436번: 영화감독 숌-파이썬(python) (2) | 2022.09.21 |
---|---|
백준 2331번: 분해합-파이썬(python) (0) | 2022.09.17 |
백준 2798번: 블랙잭-파이썬(python) (1) | 2022.09.17 |