Algorithm/C++

[백준 BoJ] 15649 - N과 M(1)

cgy12306 2021. 12. 21. 23:10
// https://www.acmicpc.net/submit/15649
// N과 M (1)
#include <iostream>
using namespace std;
int N, M;
int arr[9];
bool visited[9];
void dfs(int cnt) {
	if (cnt == M) {
		for (int i = 0; i < M; i++) cout << arr[i] << " ";
		cout << "\n";
		return;
	}

	for (int i = 1; i <= N; i++) {
		if (!visited[i]) {
			visited[i] = true;
			arr[cnt] = i;
			dfs(cnt + 1);
			visited[i] = false;
		}
	}
}
int main() {
	cin >> N >> M;
	dfs(0);
}
  • 백트래킹

 

참고 :  https://cryptosalamander.tistory.com/54