白駿15655


質問する


NとM(6)


白駿15655

に答える


一つ一つ暗記練習問題を作って、感覚を熟知しましょう.
この問題で重要なのは
  • 昇順
  • Mの数列
  • を選択
    昇順なので、まずソートを行い、配列内を順にナビゲートします.
    再帰関数を使用して条件を満たす場合は、正解配列に1つ追加し、配列要素の個数がMの場合にのみ出力します.

    正しいコード

    #N과M (6)
    
    # N개중에 M개 고른 수열 
    
    # 오름차순 
    
    
        
    N,M=map(int,input().split())
    
    lst=list(map(int,input().split()))
    def solve(num,start,ans):
        if len(ans)==num:
            for i in ans:
                print(lst[i],end=' ')
            print()
            return
        
        for i in range(start+1,len(lst)):
            solve(num,i,ans+[i])
    
    lst.sort()
    for i in range(N):
        solve(M,i,[i])

    結果は正しい