백준 15655번: N과 M (6) #Python

ColorlessDia·2025년 9월 4일

algorithm/baekjoon

목록 보기
655/808
def back_track(index, current_sequence, all_sequence):

    if M == len(current_sequence):
        all_sequence.append(list(current_sequence))
        return

    for i in range(index, N):

        if visited[numbers[i]]:
            continue

        current_sequence.append(numbers[i])
        visited[numbers[i]] = True
        back_track(i + 1, current_sequence, all_sequence)

        current_sequence.pop()
        visited[numbers[i]] = False

N, M = map(int, input().split())
numbers = sorted(map(int, input().split()))

visited = [False] * (numbers[-1] + 1)
results = []
back_track(0, [], results)

for result in results:
    print(*result)

0개의 댓글