| 제출 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):
if not visit[i]:
if not keep or keep[-1] <= nums[i] :
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)
: 내가 풀었지만 내가 나를 못 믿겠다. 계속 반복해서 6개째 푸니까..
: N과M(9)와 N과M(8)을 합친듯한 문제이다.
: N과M 시리즈는 쭉 푼 다음에 공식화시켜서 한 번 정리해야 머릿 속에 들어올 것 같다.
'CodingTest > Baekjun Online Judge' 카테고리의 다른 글
[ BOJ / 파이썬 ] 14499 주사위 굴리기 (0) | 2022.10.05 |
---|---|
[ BOJ / 파이썬 ] 15665 N과M(11) (0) | 2022.08.30 |
[ BOJ / 파이썬 ] 15657 N과M(9) (*다시 체크 요망, 덜 이해한듯*) (0) | 2022.08.30 |
[ BOJ / 파이썬 ] 15657 N과M(8) (0) | 2022.08.29 |
[ BOJ / 파이썬 ] 15656 N과M(7) (0) | 2022.08.29 |