[C++] 15649: N과 M (1)

우나·2022년 9월 30일

백준

목록 보기
4/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 < M; i++) {
			cout << arr[i] << " ";
		}
		cout << "\n";
	}
	else {
		for (int i = 1; i <= N; i++) {
			if (!visit[i]) {
				visit[i] = true;
				arr[depth] = i;
				dfs(depth + 1);
				visit[i] = false;
			}
		}
	}

}

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

	dfs(0);
}

백트래킹 방식이 생소해서 어려웠다

0개의 댓글