12시 3시 6시 9시만 가르킬 수 있는 시계들이 9개 있다.
각 시계를 90도 회전 할 수 있는 9개의 버튼을 선택적으로 눌러서 모든 시계들이 12시를 가르킬 때
의 경우의 수 중에 사전 순으로 가장 빠른 것을 찾아라.
많이 헤맸지만 몇 가지 힌트를 듣고 풀 수 있게 되었다.
시계는 많이 돌릴 필요도 없고 4번을 돌리면 제 자리로 돌아온다.
그대로 놔두던지, 1번, 2번, 3번, 4번(다시제자리로)
버튼에 대한 동작 5개만 있으면 된다.
이 버튼을 누르는 경우의 한해서 완전탐색을 해주면 답이 나온다.
for문을 9개써서 시간 안에 답이 나올 수 있는지에 대한 의문이 드는데,
직접 몇 개 계산을 해보면 된다.
5의 9승 => 1953125번
최악의 경우 2천만번 정도 순회하면 완전 탐색을 모두 수행 할 수 있다.
사전 순으로 앞에 것을 출력하라고 했으므로 실제로 다 돌 필요도 없다.
나와 같은 경우 맨 처음에 스위치의 ABCD를 string으로 표현해서 인덱스에 접근했는데,
이렇게 하면 시간 안에 답이 안나온다.....
한 번 스트링을 인트형으로 표현해볼까 해서 해봤는데
시간 안에 답이 나온다. 물론 2.xxx초가 걸리는 무지막지한 코드이지만 시간안에 답만 나오면 되므로 문제는 없다.
'알고리즘문제풀이' 카테고리의 다른 글
더블릿_점 모으기 (0) | 2015.04.23 |
---|---|
9082_지뢰찾기 (0) | 2015.04.23 |
더블릿_색종이 만들기 (0) | 2015.04.21 |
더블릿_축사보안장치 (0) | 2015.04.21 |
더블릿_도망 간 소를 잡아라 (0) | 2015.04.20 |