728x90
반응형
문제 출처: https://www.acmicpc.net/problem/15664
15664번: N과 M (10)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
풀이:
import sys
sys.stdin = open('/Users/song/Desktop/Python/Python/h.txt', 'r')
n,m = map(int,input().split())
x =sorted(list(map(int,input().split())))
visited = [False] * n
result = []
def bt():
if len(result) == m:
print(*result)
return
number = 0
for i in range(n):
if not visited[i] and number != x[i]:
if any(x[i] < num for num in result):
continue
visited[i] = True
result.append(x[i])
number = x[i]
bt()
visited[i] = False
result.pop()
bt()
이 전 문제에서 if 문 하나 추가해준다.
반응형
댓글