문제링크 https://www.acmicpc.net/problem/6603
이 문제는 전형적인 브루트포스 문제이다.
set이 주어졌을 때, 나올수 있는 6가지의 숫자 조합을 적으면 된다.
로또는 6개가 서로 다른 숫자면 된다.
즉, 1 2 3 4 5 6 과 6 5 4 3 2 1 이 같다.
이 문제의 경우, 이 두가지는 1가지로 축소(1 2 3 4 5 6으로) 해야 한다.
따라서 재귀함수 부분에서 1부터 시작하는 것으로 했다.
소스코드 :
이 문제는 전형적인 브루트포스 문제이다.
set이 주어졌을 때, 나올수 있는 6가지의 숫자 조합을 적으면 된다.
로또는 6개가 서로 다른 숫자면 된다.
즉, 1 2 3 4 5 6 과 6 5 4 3 2 1 이 같다.
이 문제의 경우, 이 두가지는 1가지로 축소(1 2 3 4 5 6으로) 해야 한다.
따라서 재귀함수 부분에서 1부터 시작하는 것으로 했다.
소스코드 :
#include#include using namespace std; vector origin; void Func(vector v, int s) { if (v.size() == 6) { for (int i = 0; i < 6; i++) { cout << v[i] << ' '; } cout << endl; return; } for (int i = s; i < origin.size(); i++) { v.push_back(origin[i]); Func(v,i+1); v.pop_back(); } } int main() { while (true) { int ah; cin >> ah; if (ah == 0) break; for (int i = 0; i < ah; i++) { int a; cin >> a; origin.push_back(a); } vector t; Func(t, 0); cout << endl; origin.clear(); } }
댓글
댓글 쓰기