백준 문제풀이

15666 - N과 M (9) / S(2) / 백트래킹

RonLee 2022. 10. 14. 10:53
"""
15666 - N과 M (9) / S(2) / 백트래킹
"""
import sys

input = sys.stdin.readline

N, M = map(int, input().split())
temp = set(map(int, input().split()))
input_list = sorted(list(temp))
dfs_list = []


def dfs(start):
    if len(dfs_list) == M:
        for num in dfs_list:
            print(num, end=" ")
        print()
        return

    for index in range(start, len(input_list)):
        dfs_list.append(input_list[index])
        dfs(index)
        dfs_list.pop()


dfs(0)

 

- set 를 이용해서 중복된 숫자 없애고, list로 변경해서 input_list에 넣기

 

dfs 함수

- 종료조건 코드

- for 반복문 / 비내림차순을 위해서 start 매개변수 받기