본문 바로가기

백준/C++

[C++] 백준 15650번 - N과 M (2)

728x90

 

문제 15650번

https://www.acmicpc.net/problem/15650

 

중복되는 값은 제외하기 위해 dfs 함수를 다시 실행할 때 인덱스값을 넘겨주었다.

 

#include <iostream>
using namespace std;

int n, m;
int num[9];
bool visited[9];

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

int main() {
	cin >> n >> m;
	dfs(1, 0);

	return 0;
}

 

 

 

 

728x90

'백준 > C++' 카테고리의 다른 글

[C++] 백준 15652번 - N과 M (4)  (0) 2024.08.30
[C++] 백준 15651번 - N과 M (3)  (0) 2024.08.30
[C++] 백준 15649번 - N과 M(1)  (0) 2024.08.26
[C++] 백준 1269번 - 대칭 차집합  (0) 2024.08.22
[C++] 백준 11286번 - 절댓값 힙  (0) 2024.08.21