문제 설명 및 제한사항
아이디어 및 해결 방법
코드
import math
def solution(n, k):
arr = list(range(1, n+1))
arr.sort()
answer = []
for i in range(1, n+1):
# (n-i)! 개로 묶인 그룹이 n개 있을때, k번째는 몇 번째 그룹?
# (k-1) // (n-i)! 번째
x = arr[(k-1) // math.factorial(n-i)]
answer.append(x)
arr.remove(x)
# k는 그룹 안에서 몇 번째?
# (k-1) % (n-i)! + 1
k = (k-1) % math.factorial(n-i) + 1
return answer
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges