백트래킹을 통해 구현한다. 이미 선택된 숫자 또한 선택해야하기 때문에(ex 1 1)
visit배열은 필요하지 않다.
백트래킹을 구현한다. 길이M에 도달하면 출력하고 길이 M에 도달하기 까지 숫자들을 선택해나간다.
//백준 15651, N과 M(3)
#include <iostream>
int N, M;
int ans[8];
void back(int depth){
if(depth == M){
for(int i{0}; i<M; ++i) std::cout << ans[i] << ' ';
std::cout << '\n';
return;
}
for(int i{1}; i<=N; ++i){
ans[depth] = i;
back(depth+1);
}
}
int main (){
std::cin >> N >> M;
back(0);
return 0;
}