본문 바로가기
ALGORITHM/백준

[BOJ/PYTHON] 15657. N과 M (8)

by 뭉망뭉 2023. 7. 27.

백준 문제 링크: https://www.acmicpc.net/problem/15657

문제 요약

N개의 자연수 중에서 M개를 고른 수열

수열은 사전 순으로 증가하는 순서로 출력

같은 수를 여러 번 골라도 된다.

고른 수열은 비내림차순이어야 한다.

핵심 아이디어

인덱스 백트래킹을 해준다. 백트래킹하는 수를 담은 배열에는 실제 값을 넣어주고, 인덱스 기준으로 백트래킹하면 된다.

풀이

# silver3-15657. N과 M (8)

import sys
input = sys.stdin.readline

n, m = map(int, input().split())
nums = list(map(int, input().split()))

nums.sort()
array = []

def back(i):
    if len(array) == m:
        print(*array)
        return
    for idx in range(i, n):
        array.append(nums[idx])
        back(idx)
        array.pop()

back(0)

실행 시간

메모리 31256KB, 시간 60ms (python3)

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

[BOJ/PYTHON] 15664. N과 M (10)  (0) 2023.07.27
[BOJ/PYTHON] 15663. N과 M (9)  (0) 2023.07.27
[BOJ/PYTHON] 15656. N과 M (7)  (0) 2023.07.27
[BOJ/PYTHON] 17136. 색종이 붙이기  (0) 2023.07.27
[BOJ/PYTHON] 15811. 복면산?!  (0) 2023.07.27

댓글