CodingTest/Baekjun Online Judge
[ BOJ / 파이썬 ] 15665 N과M(11)
EEOOOO
2022. 8. 30. 01:43
| 제출 1 |
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
nums = sorted(list(map(int, input().split())))
keep = []
visit = [0]*N
result = set()
def recur(x):
if x == M:
result.add(tuple(keep))
return
for i in range(N):
visit[i] = 1
keep.append(nums[i])
recur(x + 1)
visit[i] = 0
keep.pop()
recur(0)
for res in sorted(list(result)):
print(*res)

: N과M(10)응용 문제정도이다.
: 정말 단순하게 백트래킹 풀이하고, set로 중복 제거를 해줬다.