Table of contents
Open Table of contents
들어가며
이 문제는 전형적인 N과 M 시리즈 문제입니다.
문제의 조건을 잘 읽고, DFS와 Backtracking으로 구현하면 돼요…
AC 받은 Python 코드
import sys
input = sys.stdin.readline
def dfs(cur_len, cur_idx):
# base condition 1
if cur_len == M:
setSeqs.add(tuple(seq))
return
for i in range(cur_idx, lenNums):
seq.append(nums[i])
dfs(cur_len + 1, i)
seq.pop()
if __name__ == "__main__":
N, M = map(int, input().rstrip().split())
nums = [*sorted(map(int, input().rstrip().split()))]
seq = []
lenNums = len(nums)
setSeqs = set()
# print(nums)
for i in range(lenNums):
seq.append(nums[i])
dfs(1, i)
seq.pop()
for s in sorted(setSeqs):
print(" ".join(map(str, s)))