15654번 N과 M (5)
문제
설계
뭐야 드디어 번역이 필요없는 문제가…
N개의 자연수에서 M개를 고른 수열을 오름차순으로 출력하는 문제다.
쉬어가는 문제로구나
백트래킹 ㄱㄱ
구현
설명할게 없음
N, M = map(int, input().split())
numbers = list(map(int, input().split()))
# 오름차순
numbers.sort()
result = M * [0]
visited = N * [False]
def back_tracking(depth):
if depth == M:
# M개 까지 출력
print(*result, sep=' ')
return
for i in range(N):
if not visited[i]:
# 방문 처리
visited[i] = True
result[depth] = numbers[i]
back_tracking(depth + 1)
visited[i] = False
# 재귀
back_tracking(0)
채점
코드 확인