📊알고리즘, 문제풀이/📈문제풀이 (PS)

[알고리즘][Python] 백준 15657 N과 M (8) 문제 풀이

Written by Donghak Park

문제 출처 : www.acmicpc.net/problem/15657

 

15657번: N과 M (8)

N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열

www.acmicpc.net


문제 해석 : N개의 수 중에서 M개의 수를 고른다. 이때 자기 자신도 고를 수 있지만 중복은 없다. 또한 비내림차순이다.

 

문제 풀이 : 재귀적으로 풀어가면서 시작 index를 주면 된다.


풀이 코드

def make_answer(start, count, arr2):

    if count >= M:
        for element in arr2:
            print(element, end = " ")
        print()
        return

    for i in range(start, N):
        arr2.append(arr[i])
        make_answer(i, count+1, arr2)
        arr2.remove(arr[i])

N, M = map(int, input().split())
arr = list(map(int, input().split()))
arr.sort()
make_answer(0, 0, [])

author : donghak park
contact : donghark03@naver.com

## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.