코딩테스트/programmers (python)

Programmers / 2단계 / 줄 서는 방법 / python

seulll 2024. 5. 16. 16:17

 

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