15654번 N과 M (5)

문제


img01

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)

채점


img02

코드 확인


Link to GitHub

Updated: