728x90
반응형

기본적인 백트래킹 문제이다. 15663번 N과 M (9)과 비슷한 문제이다. 

def dfs(depth):
    if depth == M:
        s = ' '.join(map(str, li))
        if s not in d:
            d[s] = 1
            print(s)
        return ;
    for i in range(N):
        if check[i]:
            continue
        li.append(nums[i])
        check[i] = 1
        dfs(depth+1)
        li.pop()
        for j in range(i+1, N):
            check[j] = 0

N, M = map(int, input().split())
nums = sorted(map(int, input().split()))
d = {}; li = []
check = [0]*N
dfs(0)
728x90
반응형

+ Recent posts