15664: N과 M (10)

ewillwin·2023년 4월 29일
0

Problem Solving (BOJ)

목록 보기
29/230

import sys

N, M = map(int, input().split(' '))
tmp = list(map(int, sys.stdin.readline()[:-1].split(' ')))
tmp.sort()

visit = [False for _ in range(N)]
result = []

def dfs(idx_flag):
    if len(result) == M:
        print(" ".join(map(str, result)))
        return
    flag = 0
    for i in range(idx_flag, N):
        if not visit[i] and flag != tmp[i]:
            visit[i] = True; result.append(tmp[i])
            flag = tmp[i]
            dfs(i)
            visit[i] = False; result.pop()

dfs(0)
  • 비 내림차순 조건 추가
    -> idx_flag를 dfs function의 input parameter로 추가하여 구현함
profile
Software Engineer @ LG Electronics

0개의 댓글