본문 바로가기

알고리즘/백준

[ Python ] 15656번 : N과 M (7)

728x90
반응형

코딩테스트 해설

백준 15656번: N과 M (7)

문제 유형 : 백트래킹

작성 코드

import sys

N, M = map(int, sys.stdin.readline().split(" "))
sequence = sorted(map(int, sys.stdin.readline().split(" ")))

def recursion_tree(current_select: list, depth: int) -> list:
    if depth == M:
        return [current_select]
    results = []
    for num in range(N):
        results.extend(recursion_tree(current_select + [num], depth + 1))
    return results

for data in recursion_tree([], 0):
    print(" ".join(map(str, [sequence[num_idx] for num_idx in data])))

접근 방식

  1. 동일한 값도 표기해야 하기때문에, 기존에 있던 조건을 제거하였다.

개선 사항

  1. 오타를 수정하였습니다.
  2. 여전히 비효율적인 데이터 저장방식을 사용중

728x90
반응형

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

[ Python ] 1340번 : 연도 진행바  (0) 2025.04.10
[ Python ] 1149번 : RGB거리  (0) 2024.10.21
[ Python ] 15654번 : N과 M (5)  (0) 2024.08.14
[ Python ] 17609번 : 회문  (0) 2024.08.08
[ Python ] 2230번: 수 고르기  (0) 2024.08.08