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 |