[문제출처 : Codechef] 1부터 N까지의 N개의 숫자가 있습니다. 순서가 랜덤하게 배열되어 있다고 했을 때, 이를 permutation으로 봤을 때 생기는 cycles을 모두 출력하세요.
예를 들면, [2, 4, 5, 1, 7, 6, 3, 8]의 숫자 배열이 있다고 가정합시다. 그러면 처음에 2가 있기 때문에 두번째 숫자로 가고, 4가 나옵니다. 이제 4가 나왔기 때문에 다시 네번째 숫자로 가서 1을 발견합니다. 그럼 다시 첫번째로 가는데, 이는 이미 우리가 방문했던 숫자이기 때문에 [1, 2, 4, 1]이 cycle로 형성되게 됩니다.
다음번은 방문하지 않은 것 중 가장 먼저나오는 숫자, 즉 세번째 숫자부터 시작해서 또 같은 방법으로 cycle을 찾아나갑니다.
결국 [2, 4, 5, 1, 7, 6, 3, 8]는 4개의 cycles를 만들게 되고,
[1, 2, 4, 1]
[3, 5, 7, 3]
[6, 6]
[8, 8]
이렇게 4개를 출력하면 됩니다.