*문제 출처는 백준에 있습니다.
문제 제목: 체스판 다시 칠하기 / 1018번 (실버 4단계)
문제 사이트: https://www.acmicpc.net/problem/1018
문제 설명
나의 풀이
def main():
# n = 세로 길이, m = 가로 길이
n, m = map(int, input().split())
# 체스판
chess = [list(input()) for _ in range(n)]
# 답
answer = []
# 모든 체스판을 확인 하는 과정
# 7로 자르면 모든 체스판을 확인 할 수 있다.
for i in range(n - 7):
for j in range(m - 7):
white_count = 0
black_count = 0
for k in range(i, i + 8):
for l in range(j, j + 8):
if (k + l) % 2 == 0:
if chess[k][l] != 'W': # W가 아니면, 즉 B이면
white_count += 1 # W로 칠하는 갯수
else: # W일 때
black_count += 1 # B로 칠하는 갯수
else: # 홀수인 경우
if chess[k][l] != 'W': # W가 아니면, 즉 B이면
black_count += 1 # B로 칠하는 갯수
else:
white_count += 1 # W로 칠하는 갯수
answer.append(white_count)
answer.append(black_count)
# 정답 출력
print(min(answer))
main()
※ 알아야 할 것
완전탐색을 이용한 문제이다!
'코딩테스트(프로그래머스 & 백준) > 백준-Python' 카테고리의 다른 글
백준 / 토너먼트 / 1057번 / Python (1) | 2024.12.19 |
---|---|
백준 / 한수 / 1065번 / Python (2) | 2024.12.07 |
백준 / 미로 탈출하기 / 17090번 / Python (0) | 2024.12.02 |
백준 / 포도주 시식 / 2156번 / Python (1) | 2024.11.29 |
백준 / 유기농 배추 / 1012번 / Python (1) | 2024.11.26 |