728x90
반응형
문제 링크
1018번: 체스판 다시 칠하기
첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.
www.acmicpc.net
문제 접근
// 접근: 탐색하면서 바뀌는 칸의 수를 세야 한다.
문제 풀이
// 풀이: 완전탐색으로 8*8 영역 나누고,
//나눈 영역에서 첫번째 칸이 검은색/ 흰색일 경우 나누어서 최소값 비교
주의
개념
소스코드
n,m = map(int,input().split())
lst = [list(input()) for_ in range(n)]
minn = 2500
fori in range(n-7):
forj in range(m-7):
c=0
# 첫번째 검음색
forp in range(i,i+8):
forq in range(j,j+8):
ifp%2== 0:
ifq%2== 0 andlst[p][q]!='B':
c+=1
ifq%2!= 0 andlst[p][q]!='W':
c+=1
else:
ifq%2!= 0 andlst[p][q]!='B':
c+=1
ifq%2== 0 andlst[p][q]!='W':
c+=1
minn = min(minn,c)
# 첫번째 흰색
c=0
forp in range(i,i+8):
forq in range(j,j+8):
ifp%2== 0:
ifq%2!= 0 andlst[p][q]!='B':
c+=1
ifq%2== 0 andlst[p][q]!='W':
c+=1
else:
ifq%2== 0 andlst[p][q]!='B':
c+=1
ifq%2!= 0 andlst[p][q]!='W':
c+=1
minn = min(minn,c)
print(minn)
반응형
'Algorithm_BOJ(백준) > 완전탐색(Brute Force)' 카테고리의 다른 글
[백준 1065 python파이썬] 한수 (0) | 2021.02.08 |
---|---|
[백준 1065 c++] 한수 (0) | 2021.02.08 |
[백준 1018 c++] 체스판 다시 칠하기 (0) | 2021.02.04 |
[백준 2503 c++] 숫자 야구 (0) | 2021.02.04 |
[백준 10448 c++] 유레카 이론 (0) | 2021.02.04 |