The Way
백준 1096번: 종이 접기 본문
주어진 종이를 여러 번 적당히 잘 접어서 만들 수 있는 가장 큰 수를 찾는 문제이다.
접어서 같은 위치에 겹치게 되는 숫자는 합해주면 된다.
N과 M이 12 이하이므로, 완전 탐색 문제라는 것은 어렵지 않게 알 수 있다.
다만 완전 탐색 치고 생각보다 까다롭다.
가로를 접는 경우의 수와 세로를 접는 경우의 수는 순서로 따지면 각각 넉넉잡아 11!개 정도이고, (실제로는 7만 4000개 정도이다), 겹쳐진 상태만 고려한다고 해도 212 가지이다. 둘을 곱해주면 224 정도로 시간초과나기 딱 좋은 수치이다.
약간 관찰을 해 보면 겹쳐진 상태가 212가지 보다는 훨씬 더 적다는 것을 알 수 있다. 예컨대 길이 4개짜리를 접어서, 1, 3, 4번만 겹치도록 만드는 것은 불가능하다.
그렇다면 212가지 중 가능한 경우는 몇 가지일까? 어떠한 경우가 가능한 경우인지는 쉽게 알기 힘들지만, 완전탐색을 해 보면 이를 알 수 있다. (길이 12일 때 가능한 경우는 435가지이다)
마찬가지로 세로 길이에 대해서도 가능한 경우를 완전 탐색한다.
두 번의 완전 탐색이 끝나면 가로와 세로 각각의 모든 가능한 상태에 대해 다시 한 번 완전탐색을 하면 된다. 각각 예상보다 훨씬 더 적은 435가지 정도의 상태만 존재하므로, 완전탐색은 금방 끝난다.
어찌보면 간단한 문제일 수도 있지만, 완전탐색에 접근하는 방법이 다소 특이한 면이 있어 대회에서 만난다면 당황할지도 모르겠다.
'PS > 백준 온라인 저지' 카테고리의 다른 글
백준 인터랙티브 문제 (0) | 2019.12.02 |
---|---|
백준 1048번: 유니콘 (0) | 2019.10.24 |
백준 13560번: 축구 게임 (0) | 2019.09.05 |
조세퍼스 문제 시리즈 (백준 1158, 1168, 11025, 1179) (0) | 2019.08.01 |
백준 9009번: 피보나치 (2) | 2019.06.15 |