https://www.acmicpc.net/problem/15651
백준 백트래킹 문제로 <N과 M> 시리즈가 있다. <N과 M> 시리즈는 1부터 N까지의 숫자를 활용해 길이 M인 수열을 출력하는 문제이다. <N과 M(3)>은 1부터 N까지의 숫자를 중복해서, 순서는 숫자의 크기에 상관 없이 출력 가능하다.
백트래킹 개념을 사용한다.
# N과 M (3)
# 수열을 구할 때, 같은 수를 여러 번 골라도 된다.
N, M = map(int, input().split())
answer = []
def back():
if len(answer) == M:
print(" ".join(map(str, answer)))
return # 리턴 값이 없더라도, 함수에서 return문이 없으면 오류 발생하므로 꼭 있어야 한다
for i in range(1, N+1):
answer.append(i)
back()
answer.pop()
back()
입력 : 3 3
출력
입력 : 3 1
출력