백준 [15650] "N과M (2)

Kimbab1004·2024년 2월 10일
0

Algorithm

목록 보기
8/102


15650

DFS를 Backtracking을 이용해서 해결하는 문제이다.

#include <iostream>
#include <deque>
#include <string>
#include <sstream>
#include <vector>
#include <string>
#include <queue>

#define MAX 9

using namespace std;

int arr[MAX] = { 0, };
bool visited_NUM[MAX] = { 0, };
bool visited[MAX] = { 0, };
int n, m;

void backtracking(int num, int k) {
	if (k == m) 
	{
		for (int i = 0; i < m; i++) {
			cout << arr[i] << ' ';
		}
		cout << '\n';
		return;
	}
	for (int i = num; i <= n; i++) 
	{
		if (!visited[i]) {
			visited[i] = true;
			arr[k] = i;
			backtracking(i+1, k+1);
			visited[i] = false;
		}
	}
}

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

	backtracking(1,0);

	return 0;
}

0개의 댓글