yha97 2023. 9. 3. 21:16

날짜 : 2023. 09. 03

사용 언어 : python

 

문제

https://www.acmicpc.net/problem/15654

 

 

코드

import sys

n, m = map(int, sys.stdin.readline().split())
nums = list(map(int, sys.stdin.readline().split()))
nums.sort()
res = list()
visited = [False] * n

def bt(depth):
    if depth == m:
        print(*res)
        return

    for i in range(n):
        if not visited[i]:
            visited[i] = True
            res.append(nums[i])
            bt(depth + 1)
            res.pop()
            visited[i] = False

bt(0)

 

풀이

- 일반적인 백트래킹 방식으로 풀이한다

 

 

알게된 점

 

 

참고 사이트