<aside> ✅ 현재 상태에서 가능한 모든 후보군을 따라 들어가며 탐색하는 알고리즘
</aside>
<aside> ✅ 부분 집합을 구하는 것과 비슷한 느낌을 받음
</aside>
풀이 로직
풀이 코드
'''
2024-01-26 am 01:21 ~ 02:19
'''
# m과 n을 입력 받음
n, m = map(int, input().split())
num_list = []
def recur():
# m개를 다 뽑았을 경우
if len(num_list) == m:
# 출력
for idx in range(m):
print(num_list[idx])
return
# 쓸 수 있는 숫자들을 순서대로 꺼냄
for idx in range(1, n+1):
# idx가 리스트에 없을 경우
if idx not in num_list:
# 추가
num_list.append(idx)
# 다음 스텝 함수 재귀 호출
recur()
# 다음 재귀에서 함수가 return 될 경우 마지막 요소 제거
num_list.pop()
recur()
'''
1. 자연수 n 과 m이 주어짐
2. 한 줄에 하나씩 문제의 조건을 만족하는 수열 출력
- 1부터 n까지 자연수 중
- 중복 없이 m개를 고름
3. 여러번 출력은 불가, 공백으로 구분해서 출력
case2)
4 2
1 2
1 3
1 4
2 1
2 3
2 4
3 1
3 2
3 4
4 1
4 2
4 3
앞 뒤 숫자가 바뀐 중복은 허용
'''