코딩테스트

[백준] 15654 | N과 M (5) [파이썬/python]

사용할수없는닉네임이왜이렇게많지ㅠㅠ 2025. 4. 11. 23:56
728x90

문제

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

N개 자연수 중 M개를 골라 나열하는 법을 모두 출력하는 문제이다.

 

접근

백트래킹을 활용했다.

수열을 구성하는 숫자가 같아도 순서가 다르면 다른 것으로 보기 때문에, 같은 숫자가 들어가지 않도록 유의해야 한다.

 

코드

def bt():
    if len(tmp) == m:
        print(' '.join(map(str, tmp)))
        return
    
    for i in nums:
        if i in tmp:
            continue
        tmp.append(i)
        bt()
        tmp.pop()
    

tmp = []
n, m = map(int, input().split())
nums = sorted(list(map(int, input().split())))

bt()
728x90