<aside> ✅ 현재 상태에서 가능한 모든 후보군을 따라 들어가며 탐색하는 알고리즘

</aside>

Untitled

<aside> ✅ 부분 집합을 구하는 것과 비슷한 느낌을 받음

Untitled

</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
 앞 뒤 숫자가 바뀐 중복은 허용
'''