-
[백준/BOJ] 6603번 로또 (C++)알고리즘 문제풀이/백준 2020. 12. 28. 16:20
브루트 포스(완전 탐색) 유형의 문제입니다.
k개의 수에서 6개를 뽑는 조합을 DFS를 이용해 구현하였습니다.
#include <iostream> #include <vector> #include <algorithm> using namespace std; int res[6]; void DFS(int idx, int cnt, vector<int> v) { if(cnt == 6) { for(int i = 0; i < 6; i++) { cout<<res[i]<<" "; } cout<<"\n"; return; } else { for(int i = idx; i < v.size(); i++) { res[cnt] = v[i]; DFS(i + 1, cnt + 1, v); } } } int main(void) { ios_base::sync_with_stdio(false); cin.tie(0); while(1) { int k; cin>>k; if(k == 0) break; vector<int> v(k); for(int i = 0; i < k; i++) { cin>>v[i]; } DFS(0, 0, v); cout<<"\n"; } }
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준/BOJ] 9095번 1, 2, 3 더하기 (C++) (0) 2020.12.28 [백준/BOJ] 1182번 부분수열의 합 (C++) (0) 2020.12.28 [백준/BOJ] 11508번 2+1 세일 (C++) (0) 2020.12.27 [백준/BOJ] 14247번 나무 자르기 (C++) (0) 2020.12.26 [백준/BOJ] 13305번 주유소 (C++) (0) 2020.12.25