알고리즘
[C++] 백준 15651번 N과 M (3)
J3SUNG
2019. 9. 11. 15:30
728x90
백트래킹 문제입니다.
DFS를 통해서 모든 경우의 수를 구해서 문제를 풀었습니다.
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
int n, m;
int arr[10];
vector<int> v;
void DFS(int x)
{
v.push_back(x);
if (v.size() == m) {
for (int i = 0; i < v.size(); ++i) {
printf("%d ", v[i]);
}
printf("\n");
v.pop_back();
return;
}
for (int i = 1; i <= n; ++i) {
DFS(i);
}
v.pop_back();
}
int main(int argc, char* argv[])
{
scanf("%d", &n);
scanf("%d", &m);
for (int i = 1; i <= n; ++i) {
arr[i] = i;
}
for (int i = 1; i <= n; ++i) {
DFS(i);
}
return 0;
}