결국 도움을 받아 해결했다.
이렇게 규칙을 찾는 문제를 해결하는 방법에 대해서 몇 가지 패턴에 대해서 정리해놔야겠다는 생각을 했다.
우선 이 문제에 대해서 간단히 정리하자면
1 2 3 4 5 6 7 8 9 10
이라는 10개의 숫자가 있을 때
3 부터 8까지의 숫자를 뒤집으면
1 2 8 7 6 5 4 3 9 10 이된다.
여기에서 다시 1 - 5까지를 뒤집으면
6 7 8 2 1 5 4 3 9 10 이 된다.
그렇다면 두 번 뒤 집은 수의 결과를 통해 어느 구간을 두 번 뒤집었는지를 알아맞춰야 하는 문제였다.
규칙을 찾고자 엄청 노력을 했다.
예를 들어
1번째 위치에 있어야 할 수인 1이 그 자리에 없다면
그 번호부터 1을 찾아 나선다. 위에서는 1이 다섯번째 자리에 있으므로
원래 있어야 할 자리 - 현재 있는 자리 까지 뒤집어 준다.
1 2 8 7 6 5 4 3 9 10
이 되고 다시 3번째 자리수에 있어야 할 3이 없으므로 3을 찾아 나서 3을 찾으면
3번째 자리 - 3이 현재 있는 자리(8번째) 까지 뒤집어 준다.
답이 나온다.
그런데 첫 번째 테스트케이스 말고는 답이 안 나온다.
물론 이 방법으로는 어떻게든 되돌려 놓을 수는 있는데 2번만에 안된다.
그럴때는 2번을 넘어 가는 경우에는 그만 두고 이번에는 끝쪽에서 시작하여 이 과정을 해본다.
그러면 무조건 2번안에 답이 나온다.
어려운 문제였다.
규칙 찾을 때 앞에서부터 해서 되는데 안되면, 뒤에서부터 시도도 해보아야 한다