[백준] 18230번 - 2 x N 예쁜 타일링
특별한 알고리즘이 필요하다기 보단, 문제에 대한 풀이방식을 코드로 옮기는 구현력이 필요한 문제이다.
필자가 문제를 해결하기 위해 사전에 구상한 내용은 아래와 같다.
-
2x1 타일과 2x2 타일의 예쁨 정도를 내림차순으로 정렬한다.
-
가능한 한 많은 2x2 타일로 정보대 화장실의 타일을 채운다. 남는 부분이 있다면 2x1 타일로 채운다.
-
위 과정을 끝내면, 2x2타일들 중 예쁨 정도가 높은 타일들은 정보대 화장실 타일에 채워져 있다.
-
단, 2x1 타일 2개를 합쳐서 2x2 타일 하나보다 높아질 수도 있으므로 이에 대한 검사가 필요하다.
-
-
2x2 타일들 중 예쁨 정도가 낮은 타일부터, 2x1 타일 2개의 예쁨 정도와 비교한다.
-
3번을 반복 수행하다가 2x2 타일이 2x1 타일 2개보다 높은 경우, 검사를 멈추고 정답을 출력한다.
-
이 문제는 정답이 여러 개 존재할 수 있는 스페셜 저지 문제이므로, 다양한 풀이법이 나올 수 있다. 아래 코드를 참고하여 더 좋은 풀이를 만들어 내길 바란다.
1 |
|