시작이 반

[백준] 15654번(python 파이썬) 본문

알고리즘/백준

[백준] 15654번(python 파이썬)

G_Gi 2021. 1. 10. 18:17
SMALL

https://www.acmicpc.net/problem/15654

 


N과 M 5번 문제는 1부터 n까지 숫자가 있는 것이 아니라 입력으로 n개의 숫자를 임의로 받는다.

이를 list형태로 저장하고 숫자가 작은 것부터 탐색을 해야 하기 때문에 오름차순으로 정렬을 한다.

이후는 기존 n과 m의 풀이 방법과 같다.

대신 반복문의 i를 solve 리스트에 append, pop 하는 것이 아닌 오름차순으로 정렬한 리스트의 i번째 값을 append, pop 한다.

 


n, m = map(int, input().split())
my_list = list(map(int, input().split()))
my_list.sort()
solve = []
visited = [False] * n

def Dfs(depth):
    if depth == m:
        print(' '.join(map(str, solve)))
        return
    for i in range(n):
        if not visited[i]:
            solve.append(my_list[i])
            visited[i] = True
            Dfs(depth + 1)
            visited[i] = False
            solve.pop()

Dfs(0)
LIST

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 9663번(python 파이썬)  (0) 2021.01.28
[백준] 15657번(python 파이썬)  (0) 2021.01.10
[백준] 15652번(python 파이썬)  (0) 2021.01.10
[백준] 15651번(python 파이썬)  (0) 2021.01.10
[백준] 15650번(python 파이썬)  (0) 2021.01.10