Programming/Baekjoon

백준 15652 N과M (4) [c++]

fishersheep 2022. 2. 16. 13:30
반응형
#include <iostream>
#include <algorithm>
#include <stack>
#include <string>
#include <vector>
#include <utility>

using namespace std;

#define MAX 9	

int n, m;
vector<int>result;	//결과를 저장할 vector

void dfs(int cnt,int pre)	
{
	if (cnt == m)	//cnt == m  경우 결과 출력
	{
		for (int i = 0; i < m; i++)
		{
			cout << result[i] << " ";
		}
		cout << '\n';
	}
	else
	{
		for (int i = 1; i <= n; i++)	//1부터 n이하의 자연수까지 반복
		{	
			if (i < pre)continue;	//수열을 비내림차순으로 만들기위해서 이전 자연수보다 작을 경우 continue
			result.push_back(i);	//result에 i값 push
			pre = i;	//pre에 i 저장
			dfs(cnt + 1, pre);	//cnt를 증가하고 pre값 전달, 재귀
			result.pop_back();	//result 값 삭제

		}
	}

}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin >> n >> m;	//n, m 입력
	dfs(0,1);

	return 0;
}
반응형

'Programming > Baekjoon' 카테고리의 다른 글

백준 1463 1로만들기 [c++]  (0) 2022.02.17
백준 9095 1,2,3더하기 [c++]  (0) 2022.02.16
백준 1697 숨바꼭질 [c++]  (0) 2022.02.16
백준 15651 N과M(3) [c++]  (0) 2022.02.15
백준 15650 N과 M [c++]  (0) 2022.02.14