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

조히·2022년 6월 21일
0

PS

목록 보기
12/82

문제 링크

15652번: N과 M (4)

풀이

재귀로 푸는 문제

  1. func에 제일 큰 수와, 현재까지의 수열을 매개변수로 넣는다.
  2. 현재까지 수열의 sizem과 같으면 출력
  3. 아니면 n까지의 수를 현재까지 수열에 넣으면서 func를 재호출한다.

코드

#include <iostream>
#include <vector>

using namespace std;

int n, m;

void func(int maxN, vector<int> v)
{
	if (v.size() == m) {
		for (int i = 0;i < m;i++) {
			cout << v[i] << " ";
		}
		cout << endl;
		return;
	}

	for (int i = maxN;i <= n;i++)
	{
		vector<int> tmp = v;
		tmp.push_back(i);
		func(i, tmp);
	}

}

int main()
{
	cin >> n >> m;

	for (int i = 1;i <= n;i++)
	{
		vector<int> tmp;
		tmp.push_back(i);
		func(i, tmp);
	}
	
	return 0;
}
profile
Juhee Kim | Game Client Developer

0개의 댓글