해당 문제는 1~N까지 자연수중 M개를 고른 수열을 얻어야 합니다. 하지만 조건이 있습니다. 같은 수를 여러번 골라도 되고 출력은 사전 순으로 증가하는 순서로 출력해야 합니다. 이 문제는 기존의 checked를 사용하여 나눴던 조건을 해제해주면 간단하게 해결할 수 있었습니다.
#include <iostream>
using namespace std;
int N, M;
int arr[9];
bool checked[9];
void func(int cnt) {
if (cnt == M) {
for (int i = 0; i < cnt; i++) {
cout << arr[i] << " ";
}
puts("");
return;
}
for (int i = 1; i <= N; i++) {
arr[cnt] = i;
func(cnt + 1);
}
}
int main() {
cin >> N >> M;
func(0);
return 0;
}