1일1알

백준 6603번 로또 C++ 본문

알고리즘

백준 6603번 로또 C++

영춘권의달인 2022. 4. 9. 11:02

출처 : https://www.acmicpc.net/problem/6603

 

백트래킹을 이용하였다.

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>

using namespace std;
using ll = long long;

void BT(const vector<int> &v, vector<int> &ans, int idx, int cnt) {
	if (cnt >= 6) {
		for (auto a : ans) {
			cout << a << " ";
		}
		cout << "\n";
		return;
	}
	for (int i = idx; i < v.size(); i++) {
		ans.push_back(v[i]);
		BT(v, ans, i + 1, cnt + 1);
		ans.pop_back();
	}
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	while (true) {
		int k;
		cin >> k;
		if (k == 0) break;
		vector<int> v(k);
		vector<int> ans;
		for (int i = 0; i < k; i++) {
			cin >> v[i];
		}
		BT(v, ans, 0, 0);
		cout << "\n";
	}
};

'알고리즘' 카테고리의 다른 글

백준 1063번 킹 C++  (0) 2022.04.11
백준 1205번 등수 구하기 C++  (0) 2022.04.10
백준 16236번 아기 상어 C++  (0) 2022.04.07
백준 1389번 케빈 베이컨의 6단계 법칙  (0) 2022.04.06
백준 11403번 경로 찾기 C++  (0) 2022.04.05