문제풀이/기타

[파이썬] [백트래킹] 백준 15650 N과 M(2)

승무_ 2022. 3. 9. 09:58

문제

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

 

15650번: N과 M (2)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net

 

코드

n,m=map(int, input().split())
lst=[]

def dfs(start):
    if len(lst)==m:
        print(' '.join(map(str,lst)))
        return
    for i in range(start, n+1):
        if i not in lst:
            lst.append(i)
            dfs(i+1)
            lst.pop()
dfs(1)

생각 정리