Adventure Time - Finn 3
본문 바로가기
코테연습/python

순열 구하기

by hyun9_9 2026. 5. 17.

1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 M개를 뽑아 일렬로 나열하는 방법을 모두 출력합니다. ▣입력설명 첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다. ▣출력설명 첫 번째 줄에 결과를 출력합니다. 맨 마지막 총 경우의 수를 출력합니다. 출력순서는 사전순으로 오름차순으로 출력합니다.

 

import sys
# sys.stdin=open("input.txt","rt")
# n,m = map(int,input().split())
# n = int(input())
# arr = list(map(int,input().split()))

def DFS(L):
    global cnt
    if L == m:
        for j in range(L):
            print(res[j],end=' ')
        print()
        cnt +=1
    else:
        for i in range(1,n+1):
            if ch[i]==0:
                ch[i]=1
                res[L]=i
                DFS(L+1)
                ch[i]=0

if __name__ =="__main__":
    n,m = map(int,input().split()) # n 숫자, m 뽑을 개수
    res = [0] * m
    ch =[0] * (n+1)
    cnt = 0
    DFS(0)
    print(cnt)

'코테연습 > python' 카테고리의 다른 글

수열 추측하기  (0) 2026.05.18
동전교환  (0) 2026.05.16
중복순열 구하기  (0) 2026.05.14
합이 같은 부분집합(DFS : 아마존 인터뷰)  (0) 2026.05.13
부분집합 구하기(DFS)  (0) 2026.05.12