728x90

나의 풀이 (시간 초과)
from itertools import permutations
def solution(n, k):
return list(permutations(range(1, n + 1), n))[k - 1]
나의 풀이 (최종)
def solution(n, k):
pool = [i for i in range(1, n + 1)]
answer = []
num = 1
k -= 1
for i in range(2, n):
num *= i
for i in range(n - 1, 0, -1):
answer.append(pool[k // num])
pool.remove(pool[k // num])
k %= num
num //= i
answer.append(pool[0])
return answer
- math 라이브러리의 factorial을 사용했어도 좋았을 것
반응형
'Coding Test > Programmers' 카테고리의 다른 글
| [프로그래머스/파이썬] 최댓값과 최솟값 (0) | 2022.06.20 |
|---|---|
| [프로그래머스/파이썬] 주차 요금 계산 (0) | 2022.06.20 |
| [프로그래머스/파이썬] 숫자의 표현 (0) | 2022.06.20 |
| [프로그래머스/파이썬] 숫자 블록 (0) | 2022.06.20 |
| [프로그래머스/파이썬] k진수에서 소수 개수 구하기 (0) | 2022.06.20 |