https://www.acmicpc.net/problem/15654
풀이
백트래킹 N과 M 시리즈 문제입니다. 조합을 구현해주시면 됩니다.
# 15654번 N과 M (5)
import sys
sys.setrecursionlimit(10000)
N, M = map(int, input().split())
nums = list(map(int, input().split()))
nums.sort()
ans = []
visited = [False] * N
def printAns():
print(*ans)
return
def choose_num(cur_cnt):
# 재귀함수 종료조건
if cur_cnt == M+1:
printAns()
return
# 재귀함수 호출
for i in range(N):
if visited[i]:
continue
visited[i] = True
ans.append(nums[i])
choose_num(cur_cnt+1)
visited[i] = False
ans.pop()
choose_num(1)
출력결과
'백준 > 백트래킹' 카테고리의 다른 글
[백준][Python] 15651번 N과 M (3) - 코팩 (0) | 2023.04.04 |
---|---|
[백준][Python] 15663번 N과 M (9) - 코팩 (0) | 2022.09.09 |
[백준][Python] 15654번 N과 M (8) - 코팩 (0) | 2022.09.07 |
[백준][Python] 15652번 N과 M (4) - 파이썬 (0) | 2022.09.01 |