n,m = map(int, input().split())
arr = list(map(int, input().split())) # 입력을 정수 리스트로 변환
arr = sorted(set(arr)) # 중복 제거 및 정렬
arr.sort()
# 중복 없는 조합 생성 함수
def combinations_without_replacement(n,new,c):
answer = []
if len(new)==n:
return [new]
for i in range(c,len(arr)):
answer.extend(combinations_without_replacement(n,new+[arr[i]],i))
return answer
# 조합 생성 및 출력
ls = combinations_without_replacement(m,[],0)
for a in ls:
print(' '.join(map(str, a))) # 리스트를 공백으로 구분하여 출력
풀이
1. 입력으로 받은 수를 정수로 변환하고, 중복을 제거한 뒤 정렬하여 사전 순으로 처리하도록 한다.
2. 조합을 생성하기 위해 재귀 함수를 사용하며, 현재까지 생성한 조합과 시작 인덱스를 기반으로 조합을 확장한다.