[C++] 15650: N과 M (2)

우나·2022년 9월 30일

백준

목록 보기
5/16

#include <iostream>
using namespace std;

int N, M;
int arr[9];
bool visit[9];

void dfs(int depth) {
	if (depth == M) {
		for (int i = 0; i < depth; i++) {
			cout << arr[i] << " ";
		}
		cout << "\n";
	}
	else {
		for (int i = 1; i <= N; i++) {
			if (!visit[i] && (depth==0 || arr[depth-1] < i)) {
				visit[i] = true;
				arr[depth] = i;
				dfs(depth + 1);
				visit[i] = false;
			}
		}
	}
}

int main() {
	cin >> N >> M;
	
	dfs(0);

}

0개의 댓글