개발일지/알고리즘

백준 6603번 : 로또

김진우 개발일지 2025. 2. 2. 17:54

깊이 우선 탐색으로 경우의 수를 모두 구할 수 있다.

#include <iostream>
#include <vector>
using namespace std;

void dfs(vector<int>& s, vector<int>& path, int idx) {
    if (path.size() == 6) {
        for (int x : path) cout << x << ' ';
        cout << '\n';
        return;
    }
    for (int i = idx; i < s.size(); i++) {
        path.push_back(s[i]);
        dfs(s, path, i + 1);
        path.pop_back();
    }
}

int main() {
    while (true) {
        int k;
        cin >> k;
        if (k == 0) break;
        vector<int> s(k), path;
        for (int i = 0; i < k; i++) cin >> s[i];
        dfs(s, path, 0);
        cout << '\n';
    }
}

 

'개발일지 > 알고리즘' 카테고리의 다른 글

백준 9095번 : 1, 2, 3 더하기  (0) 2025.02.02
백준 1182번 : 부분수열의 합  (0) 2025.02.02
백준 5430번 : AC  (0) 2025.01.28
백준 1966번 : 프린터 큐  (0) 2025.01.28
백준 1158번 : 요세푸스 문제  (0) 2025.01.25