[백준] 15652번 N과 M (4) / C++
#문제
#풀이
#include <iostream>
using namespace std;
int n, m;
int arr[8] = { 0 };
void dfs(int num, int cnt)
{
if (cnt == m)
{
for (int i = 0; i < m; ++i)
{
cout << arr[i] << " ";
}
cout << '\n';
return;
}
for (int i = num; i <= n; ++i)
{
arr[cnt] = i;
dfs(i, cnt + 1);
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m;
dfs(1, 0);
return 0;
}
#정리
dfs를 활용하여 해결할 수 있는 문제. 파라미터에 따라 중복을 허용할지, 말지 구분된다.
Enjoy Reading This Article?
Here are some more articles you might like to read next: