15652번: N과 M (4)

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

www.acmicpc.net


나의 풀이

  • 오름차순이라는 조건을 만족시키기 위해서 [ic]get_num[/ic] 함수를 통해 최소 값을 전달해줬다.
def get_num(k, min):
    if k == m:
        print(*num_list)
        return
    # 최소 값을 전달
    for i in range(min, n + 1):
        num_list[k] = i
        get_num(k + 1, i)
    
def solution():
    global n
    global m
    n, m = map(int, input().split())
    # 수열
    global num_list
    num_list = [0] * m
    # 탐색 시작
    get_num(0, 1)
    

solution()