처음에 permutations으로 모든 경우의 수를 돌렸는데 정확성은 다 맞았지만, 효율성이 전부 시간초과가 났다.
from itertools import permutations
def solution(n, k):
cnt = 0
for p in permutations(range(1,n+1)):
if cnt==k-1:
answer = list(p)
break
cnt+=1
return answer
결국 다른 분의 코드를 참고했다
import math
def solution(n, k):
answer = []
num_list = [i for i in range(1,n+1)]
while n!=0:
num_case = math.factorial(n-1)
idx = k//num_case
k = k%num_case
if k==0:
answer.append(num_list.pop(idx-1))
else:
answer.append(num_list.pop(idx))
n-=1
return answer
이게 LV2라니,, 알고리즘이 아닌 그냥 규칙을 찾는 문제가 더 어려운 것 같기도 하다ㅠ_ㅠ