728x90
반응형
🙆♂️문제
🙋♂️풀이
약간 끔찍해보이지만 침착하게
문제 요약 : 먼저 체스판의 규격을 입력받습니다.그리고 체스판이 입력되는데 W와 B로 표현됩니다. 이 때 임의의 8x8 체스판을 뽑아 체스판 규칙에 맞지 않는 (다시 색을 칠해야 하는) 부분의 최소의 수를 구해야 합니다.
🚀 입력받기
n,m = map(int,input().split())
chess=[list(input()) for _ in range(n)]
먼저 체스판의 n x m 규격을 입력받습니다.
그리고 체스판의 모양을 입력받는데 2차원 리스트로 입력받습니다.
🚀 8x8 올바른 체스판
startW=[];startB=[]
for i in range(8):
startW.append([])
startB.append([])
for j in range(8):
x=i+1;y=j+1
if ((x%2!=0)&(y%2!=0)) | ((x%2==0)&(y%2==0)):
startW[i].append("W")
startB[i].append("B")
elif ((x%2!=0)&(y%2==0)) | ((x%2==0)&(y%2!=0)):
startB[i].append("W")
startW[i].append("B")
비교할 체스판을 만들었습니다.
🚀 잘못된 체스판 찾기
cnts=[]
for i in range(n-7):
for j in range(m-7):
count1=0;count2=0
for k in range(8):
for q in range(8):
if chess[i+k][j+q] != startW[k][q]:
count1+=1
elif chess[i+k][j+q] != startB[k][q]:
count2+=1
cnts.append(count1)
cnts.append(count2)
입력받은 체스판에서 8x8 체스판을 추출하여 틀린 값들을 cnts 배열에 저장합니다.
W로 시작하는 체스판인 경우와 B로 시작하는 체스판의 경우를 비교하여 모두 cnts 배열에 저장합니다.
🚀 출력하기
print(min(cnts))
min함수를 사용하여 cnts 배열 중 최소값을 출력합니다.
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준][Python] 2750. 수 정렬하기 (0) | 2022.07.18 |
---|---|
[백준][Python] 1436. 영화감독 숌 (0) | 2022.07.16 |
[백준][Python] 7568. 덩치 (0) | 2022.07.15 |
[백준][Python] 2231. 분해합 (0) | 2022.07.15 |
[백준][Python] 2798번. 블랙잭 (0) | 2022.07.14 |