#include <iostream>
#define MAX 9
using namespace std;
int arr[MAX];
int n, m;
void dfs(int depth) {
if (depth == m) {
for (int i = 0; i < m; i++) {
cout << arr[i] << " ";
}
cout << '\n';
return;
}
for (int i = 1; i <= n; i++) {
arr[depth] = i;
dfs(depth + 1);
}
}
int main() {
cin >> n >> m;
dfs(0);
return 0;
}
이번에는 문제에 같은 수를 여러 번 골라도 된다는 조건이 있다.
같은 수를 여러번 고른다는 것은 중복 추출을 허용한다는 뜻
따라서 방문을 체크하는 visited
의 체크만 없으면 이미 출력했던 숫자도 출력하게 된다.