

코딩테스트 연습 - 줄 서는 방법 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
첫 번쨰 코드
from itertools import permutations
def solution(n,k):
answer = []
line_list = []
for i in range(n):
line_list.append(i+1)
number = 0
for i in permutations(line_list, n):
number += 1
if number == k:
answer = list(i)
#print(answer)
return answer
solution(3,5)
뭐야 왜이렇게 쉽지???...

응 타임오버~ ㅎㅎ..ㅎㅎ..ㅎㅎ
수정 코드
수학적으로 풀어야됨 맨처음 수부터 하나씩 구해나감
import math
def solution(n, k):
answer = []
num_list = []
for i in range(n):
num_list.append(i+1)
k = k-1
while num_list:
# 맨 첫번째 자리부터 하나씩 구해나감
a = k//math.factorial(n-1)
answer.append(num_list[a])
del num_list[a]
k = k%math.factorial(n-1)
n -= 1
return answer
solution(3,5)
'코딩테스트 파이썬 > 파이썬 프로그래머스 2단계' 카테고리의 다른 글
| 시소 짝꿍 (0) | 2023.10.04 |
|---|---|
| 마법의 엘리베이터 (0) | 2023.10.03 |
| 숫자 카드 나누기 (1) | 2023.09.29 |
| 호텔 대실 (0) | 2023.09.28 |
| 행렬 테두리 회전하기 (0) | 2023.09.27 |