본문 바로가기
Programming/Programmers

[프로그래머스] 줄 서는 방법 (Python)

by 데이터현 2021. 11. 13.

https://programmers.co.kr/learn/courses/30/lessons/12936

 

코딩테스트 연습 - 줄 서는 방법

n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람

programmers.co.kr

완전 탐색은 시간 초과가 뜨고 나열해서 적다 보면 규칙이 있다 이를 활용하면  풀 수 있음

 

나의 풀이

import math
def solution(n, k):
    answer = []
    number = [i for i in range(1, n+1)]
    while (n != 0):
        temp = math.factorial(n) // n 
        index, k = k//temp, k%temp
        if k == 0:
            answer.append(number.pop(index-1))
        else :
             answer.append(number.pop(index))
        n -= 1
    return answer

 

댓글