좋은 방법이요?
일단 소문제 1부터 생각해 봅시다. N=5일 때 39번째 순열은 어떻게 표현 될까요?
맨 윗자리부터 채워 봅시다.
y (나머지 4자리) 네요.
4자리를 배열하는 가짓수는 4! = 24개죠.. 39는 24보다 큽니다. 따라서, 앞에 1은 안 들어오죠.
앞 자리가 1, 혹은 2인 가짓수는 몇 가지일까요? 24 + 24 = 48이겠죠..
따라서 앞자리는 2네요~
2 ? (나머지 3자리)
2 ? ? ? ? 은 25번째 부터 시작됩니다.
3자리를 배열하는 가짓수는 6가지입니다.
그렇다면
2 1 ? ? ? 은 25번째 부터 30번째까지 가겠죠? 당연히 아닙니다.
2 3 ? ? ? 은요? 31번째부터 36번째까지 가지 않나요? 당근 아니죠.
2 4 ? ? ? 은요? 37번째부터 42번째까지 나오는군요. 따라서 2 4 ? ? ? 입니다.
이런 식으로 끝 자리까지 재귀적으로 채워 나가시면 됩니다.
ahn428 6년 전
이클립스로 돌려보니
입력으로
4
2 1 2 4 3
이렇게 줬을때 출력이 안되고 계속 돌아가네요.
아마도 main메소드의 두번째 if문안의 for문 때문에 그런 것 같은데 혹시 좋은 방법이 있을까요?