[백준 15654] N과 M (5)

1. 문제 설명

N과 M (5)

2. 문제 분석

백트래킹을 통해 푸는 순열 문제. 순열의 개수가 정확히 m일 때에만 출력.

3. 나의 풀이

import sys

n, m = map(int, sys.stdin.readline().rstrip().split())
numbers = list(map(int, sys.stdin.readline().rstrip().split()))
numbers.sort()

def DFS(permutation_list):
    if len(permutation_list) == m:
        print(*permutation_list, sep=' ')

    for i in range(n):
        if not visited[i]:
            visited[i] = True
            permutation_list.append(numbers[i])
            DFS(permutation_list)
            permutation_list.pop()
            visited[i] = False

visited = [False for _ in range(n)]
DFS([])

좋은 웹페이지 즐겨찾기