https://school.programmers.co.kr/learn/courses/30/lessons/12936
코드
import math
def solution(n, k):
arr = list(range(1, n + 1))
answer = []
while arr:
a = (k - 1) // math.factorial(n - 1)
answer.append(arr.pop(a))
k = k % math.factorial(n - 1)
n -= 1
return answer
처음에 순열을 사용하여 접근하려고 했으나 통과하지 못하여서 다른 풀이를 참고하였다.
수학적으로 팩토리얼을 이용해 접근할 수 있었다.
참조
https://recordofwonseok.tistory.com/73
(Python) - 프로그래머스 : 줄 서는 방법
https://programmers.co.kr/learn/courses/30/lessons/12936 코딩테스트 연습 - 줄 서는 방법 n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이
recordofwonseok.tistory.com
'코딩테스트 > programmers (python)' 카테고리의 다른 글
Programmers / 3단계 / 보석 쇼핑 / python (0) | 2024.05.21 |
---|---|
Programmers / 2단계 / 여행 경로 / python (0) | 2024.05.19 |
Programmers / 2단계 / 미로 탈출 / python (0) | 2024.05.14 |
Programmers / 3단계 / 호텔 대실 / python (0) | 2024.05.13 |
Programmers / 2단계 / 시소 짝꿍 / python (0) | 2024.05.10 |