[ 백트래킹 코드 ]
#include <iostream> #include <algorithm> using namespace std; int N, M; int arr[10]; void func(int depth){ if(depth == M){ for(int i=0;i<M;i++) cout << arr[i] << ' '; cout << '\n'; }else{ for(int i=0;i<N;i++) { arr[depth] = i+1; func(depth+1); } } } int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> N >> M; func(0); return 0; }
- 중복 포함이니 그냥 재귀로 돌리면 된다