줄 서는 방법 (팩토리얼, 순열)

2023. 7. 15. 00:34·Coding Test/programmers
728x90
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

분석

사람의 수 n과, 자연수 k가 주어질 때, 사람을 나열 하는 방법을 사전 순으로 나열 했을 때, k번째 방법을 반환

 

[1722번] 순열의 순서 구하기(수학, 구현)

1722번: 순열의 순서 첫째 줄에 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄의 첫 번째 수는 소문제 번호이다. 1인 경우 k(1 ≤ k ≤ N!)를 입력받고, 2인 경우 임의의 순열을 나타내는 N개의 수를 입력받는다. N

karla.tistory.com

 

풀이

def solution(n, k):
    answer = []

    fList = [0] * 21
    fList[0] = 1
    for i in range(1, n+1):
        fList[i] = fList[i-1] * i

    visited = [False] * 21   # 숫자 사용여부 리스트
    s = [0] * (n+1) # 출력 순열 리스트

    for i in range(1, n+1):
        cnt =1
        for j in range(1, n+1):
            if visited[j]:
                continue
            if k <= cnt * fList[n-i]: 
                k -= (cnt-1) * fList[n-i]
                s[i] = j
                visited[j] = True
                break
            cnt += 1

    return s[1:]

 

 

 

728x90
저작자표시 비영리 변경금지 (새창열림)
'Coding Test/programmers' 카테고리의 다른 글
  • 숫자 변환하기 (DP)
  • 카펫
  • 행렬의 곱셈
  • 스티커모으기 (DP)
Karla Ko
Karla Ko
𝘾𝙤𝙣𝙩𝙞𝙣𝙪𝙤𝙪𝙨𝙡𝙮 𝙄𝙢𝙥𝙧𝙤𝙫𝙞𝙣𝙜, 𝘾𝙤𝙣𝙨𝙩𝙖𝙣𝙩𝙡𝙮 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙞𝙣𝙜 𝙔𝙚𝙨!
    250x250
  • Karla Ko
    karlaLog
    Karla Ko
  • 전체
    오늘
    어제
    • Total (467)
      • Spring (19)
      • JPA (4)
      • Cloud & Architecture (15)
        • Kubernetes (5)
        • Docker (3)
        • MSA (2)
        • GCP (1)
        • AWS (4)
      • Devops (1)
      • Message Queue (4)
        • Kafka (2)
        • RabbitMQ (2)
      • Git (4)
      • DB (4)
      • Java (9)
      • Python (4)
      • CS (11)
        • OS (8)
        • Network (2)
        • Algorithm (1)
      • Coding Test (392)
        • programmers (156)
        • Graph (43)
        • DP (37)
        • Search (31)
        • Tree (13)
        • Data Structure (26)
        • Combination (12)
        • Implement (18)
        • Geedy (23)
        • Sort (7)
        • Math (21)
        • geometry (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    그래프
    파이썬
    자료구조
    플로이드워셜
    LIS
    알고리즘
    DP
    재귀
    프로그래머스
    조합
    그리디
    최소신장트리
    큐
    백준
    최단거리
    월간코드챌린지
    트리
    이분탐색
    최대공약수
    구간합
    구현
    힙
    덱
    BFS
    다익스트라
    동적계획법
    Algorithm
    정렬
    DFS
    스택
  • hELLO· Designed By정상우.v4.10.3
Karla Ko
줄 서는 방법 (팩토리얼, 순열)
상단으로

티스토리툴바