DevKim

[Python] 프로그래머스 LV.03 - 줄 서는 방법 본문

알고리즘 PS

[Python] 프로그래머스 LV.03 - 줄 서는 방법

on_doing 2021. 3. 13. 17:55
728x90

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

 

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

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

programmers.co.kr

[ 알고리즘 ]

구현

 

[문제 접근]

처음에 순열로 풀었다가 시간 초과 나서 어떻게 풀지 고민했던 문제.

해답은 팩토리얼로 구하는 간단한 문제였다programmers.co.kr/learn/courses/30/lessons/12936

 

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

 

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

 

programmers.co.kr

[ 알고리즘 ]

 

구현

 

 

 

[문제 접근]

 

처음에 순열로 풀었다가 시간 초과 나서 어떻게 풀지 고민했던 문제.

 

해답은 팩토리얼로 구하는 간단한 문제였다

 

 

[코드]

from math import factorial
def solution(n, k):
    answer = []
    result=[]
    List=[i for i in range(1,n+1)]
    
    while n>0:
        n=n-1           
        num=factorial(n) # 숫자 하나당 가지고 있는 것        
        a=k//num # a로 시작하는
        k=k%num # k번째 부터 다시 시작
        
        if k==0:
            a-=1
        
        result.append(List[a])
        List.remove(List[a])
           
    return result
728x90
Comments