코딩 테스트/백준

백준 15652번 N과 M (4)

tj1023 2023. 4. 6. 18:52

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

 

15652번: N과 M (4)

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

www.acmicpc.net

마찬가지로 앞선 N과 M 문제에서 코드 한두줄만 수정하면 되는 간단한 문제다.

 

고른 수열이 비내림차순이어야 하는 조건이 생겼다.

def nm():
    if len(arr) == m:
        print(' '.join(map(str, arr)))
        return

    for i in range(1, n+1):
        if arr and arr[-1] > i:  # 비내림차순 조건
            continue
        arr.append(i)
        nm()
        arr.pop()


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