본문 바로가기
백준 알고리즘(BOJ)

백준 알고리즘 15655 (N과 M(6)) - python

by Think_why 2019. 10. 16.

[문제] 백준 알고리즘 15655 (N과 M(6)) - python

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

 

15655번: N과 M (6)

N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 고른 수열은 오름차순이어야 한다.

www.acmicpc.net

 

N과 M(5)에서 오름차순 방식 추가.

idx 적용한 range 조절만 해주면 끝이다. 

 

[Code]

N, M = map(int, input().split())
L = list(map(int, input().split()))

L.sort()
visited = [False] * N
out = []

def solve(depth, idx, N, M):
    if depth == M:
        print(' '.join(map(str, out)))
        return
    for i in range(idx, N):
        if not visited[i]:
            visited[i] = True
            out.append(L[i])
            solve(depth+1, i+1, N, M)
            out.pop()
            visited[i] = False

solve(0, 0, N, M)
728x90

댓글