본문으로 건너뛰기

백준 1018

·190 단어수·1 분· loading

풀이 1

n,m=map(int,input().split())

board=list() for i in range(n): board.append(input())

min_numbers=[] for i in range(n-7): for j in range(m-7): cnt1 = 0 cnt2 = 0 for k in range(i, i+8): for l in range(j, j+8): ## 체스판 규칙에 따라서 ## (k+l)%2가 0이면 board[k][j]는 모두 같은 색이어야 하고 ## (k+l)%2가 1이면 board[k][j]는 모두 다른 색이어야 한다. if (k + l) % 2 == 0: if board[k][l] != ‘W’: cnt1 += 1 else: cnt2 += 1 else: if board[k][l] != ‘B’: cnt1 += 1 else: cnt2 += 1 print(cnt1, end=’|||’) print(cnt2)

좀 더 깔끔하게 푸는 법

board에서 자른 8*8 크기를 각각

W로 시작하는 체스판으로 채우는 수 + B로 시작하는 체스판으로 채우는 수는 항상 64이다

n, m = map(int, input().split())

board=list()
#

for i in range(n):
#

board.append(input())
#

minnum=64 for i in range(n-7): for j in range(m-7): cnt = 0 for k in range(i, i+8): for l in range(j, j+8): if (k + l) % 2 == 0: if board[k][l] != ‘W’: cnt += 1 else: if board[k][l] != ‘B’: cnt += 1 if cnt>=32: cnt=64-cnt minnum=min(cnt,minnum)

print(minnum)

매번 입력하기 귀찮으니까

board=[ ‘BBBBBBBBWBWBW’, ‘BBBBBBBBBWBWB’, ‘BBBBBBBBWBWBW’, ‘BBBBBBBBBWBWB’, ‘BBBBBBBBWBWBW’, ‘BBBBBBBBBWBWB’, ‘BBBBBBBBWBWBW’, ‘BBBBBBBBBWBWB’, ‘WWWWWWWWWWBWB’, ‘WWWWWWWWWWBWB’, ]


 환영합니다! 백준 10828: 스택