import sys
n_input = sys.stdin.readline

def dfs(N, M, sequence):
   
    if len(sequence) == M:
     # 수열의 길이가 M과 같아지면 출력합니다.
        print(*sequence) #sequence를 언패킹합니다.
        return

    for num in range(1, N + 1):        
        if num not in sequence:
        # 수열에 해당 수가 없는 경우에만, 다음 숫자를 선택합니다.
        # 수열에서 중복되는 숫자를 피하기 위해서입니다.
            dfs(N, M, sequence + [num])
            # 다음 숫자를 선택한 경우에 재귀 호출하여 다음 자리 숫자를 결정합니다.
            # sequence + [num] -> ex) [1,2,3]=>sequence + [4] => [num]  -> [1,2,3,4]
N, M = map(int, n_input().split())
dfs(N, M, []) # sequence는 초기에 빈 리스트로 시작합니다.


'코딩 연습 > 백준 코드' 카테고리의 다른 글

N과M(5)-15654.py  (0) 2023.10.19
N과M(3)-15651.py  (1) 2023.10.19
회사에 있는 사람-7785.py  (0) 2023.10.18
행운의 수-9575.py  (0) 2023.10.18
학생 번호-1235.py  (0) 2023.10.18

+ Recent posts