bggbr 2019. 10. 25. 17:47

BOJ 6603 로또

#include <iostream>
using namespace std;
#define endl "\n"
#define MAX 14


int k, lottoNum = 6;
int arr[MAX];
bool check[MAX];


void dfs(int num, int cnt){
    if(cnt == lottoNum){
        for(int i = 0; i < k; i++){
            if(check[i]){
                cout << arr[i] << " ";
            }
        }
        cout << endl;
        return ;
    }
    for(int i = num; i < k; i++){
        if(check[i]) continue;
        check[i] = true;
        dfs(i + 1, cnt + 1);
        check[i] = false;
    }
}

int main(void){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    while(1){
        cin >> k;
        if(k == 0) break;
        for(int i = 0; i < k; i++){
            cin >> arr[i];
        }
        dfs(0, 0);
        cout << endl;
    }
}

BOJ 6603 로또