프로그래밍/Python

[Python] 백준 15654 N과 M (5)

모영이 2021. 3. 5. 23:13

 

15654번: N과 M (5)

N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열

www.acmicpc.net

백트래킹 : 한번 간 곳은 다시 방문하지 않도록 설계

 

전체 코드

import sys

input = sys.stdin.readline

def bt(t:int, result:list, visited:list):
    if t == 0:
        print(*result)
        return
    for i in range(len(nums)):
        if i not in visited:
            bt(t-1, result + [nums[i]], visited + [i])

N, M = map(int, input().split())
nums = list(map(int, input().split()))
nums.sort()

bt(M, [], [])