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

#문제

백준 15652번 N과 M (4)

#풀이

#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:

  • [백준] 15650번 N과 M (2) / C++
  • [백준] 1018번 체스판 다시 칠하기 / C++
  • [백준] 2563번 색종이 / C++
  • [백준] 1940번 주몽 / C++
  • [백준] 1065번 한수 / C++