중복은 가능하나 비오름차순으로 출력해야한다.
따라서 입력받은 숫자를 set
으로 변환 후 다시 list
로 변환해서 겹치는 것을 제거해주고 sort
한뒤 뽑기만 하면 된다.
element
안에 아무것도 없을 때는 그냥 순서대로 집어넣고 원소가 있을 때만 비오름차순으로 뽑아준다.
N, M = map(int, input().split())
numbers = list(map(int, input().split()))
numbers = list(set(numbers))
numbers.sort()
element = []
def dfs(depth):
if depth == M:
print(*element)
return
for i in range(len(numbers)):
if not element:
element.append(numbers[i])
dfs(depth + 1)
element.pop()
else:
if element[-1] <= numbers[i]:
element.append(numbers[i])
dfs(depth + 1)
element.pop()
dfs(0)
'PS' 카테고리의 다른 글
[BOJ] 2217번 로프 문제 - Python (0) | 2021.03.09 |
---|---|
[BOJ] 1309번 동물원 문제 - Python (0) | 2021.03.08 |
[BOJ] 15664번 N과 M (10) 문제 (0) | 2021.03.03 |
[BOJ] 15665번 N과 M (11) 문제 (0) | 2021.03.03 |
[BOJ] 2153번 소수 단어 문제 (0) | 2021.01.19 |