PS알못 OrbitHv의 PS logo PS알못 OrbitHv의 PS

태그:

11. 브루트 포스 CLASS 2 ESSENTIAL

보드의 일부분을 체스판으로 사용하려할 때 최소로 칸의 색을 바꾸는 횟수를 구하는 문제입니다. 우선 영역이 체스판일 경우 영역의의 각 칸의 위치와 B, W와의 관계를 찾습니다. 이 관계에 위배되는 칸의 개수를 세면 이 영역에 대해 체스판으로 만들 때 필요한 색을 바꾸는 횟수를 구할 수 있습니다. 여기서 8*8 크기의 보드가 고정되어있을 때 체스판으로 사용될 수 있는 경우는 총 2가지인 사실을 사용하여 최소값을 구합니다. 왼쪽 아래의 모서리가 검은색인 경우와 흰색인 경우죠. 따라서 보드에서 8*8 크기의 영역을 잡았을 때 n번 색을 바꿀 때 체스판이 된다면 64-n번 색을 바꿔서 체스판을 만드는 경우도 있습니다. 따라서 각 영역마다 관계에 위배되는 칸의 개수를 세고 그 개수와 64에서 이 개수를 뺀 값 중 작은 값을 골라줘야 합니다. 이 값들을 비교하여 가장 작은 값을 출력하면 됩니다.

소스 코드

언어 코드 시간
Python 3 코드(Github) / 코드(백준) 2020-03-29 16:39:53