본문 바로가기
백준알고리즘/백트래킹

(Python/🥈2)백준 알고리즘 15665번: N과 M(10)

by windy7271 2022. 11. 20.
728x90
반응형

문제 출처: https://www.acmicpc.net/problem/15664

 

15664번: N과 M (10)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net

풀이:

 

import sys
sys.stdin = open('/Users/song/Desktop/Python/Python/h.txt', 'r')


n,m = map(int,input().split())
x =sorted(list(map(int,input().split())))
visited = [False] * n
result = []


def bt():
    if len(result) == m:
        print(*result)
        return
    number = 0
    for i in range(n):
        if not visited[i] and number != x[i]:
            if any(x[i] < num for num in result):
                continue
            visited[i] = True
            result.append(x[i])
            number = x[i]
            bt()
            visited[i] = False
            result.pop()
bt()

 

 

이 전 문제에서 if 문 하나 추가해준다.

 

반응형

댓글