본문 바로가기
개발자/알고리즘

[BOJ] 6603번 로또

by D , 2019. 9. 12.
반응형

#include < iostream >
#include < vector >
#include < algorithm >

using namespace std;

int main()
{

    while(1){
        int num;

        cin>>num;
        if(num == 0){
            break;
        }
        vector q;
        vector d;

        for(int i=0;i<num;i++){
            int temp;
            cin>>temp;
            q.push_back(temp);
            if(i<6){
                d.push_back(1);
            }else{
                d.push_back(0);
            }
        }

        do{
            for(int i=0;i<d.size();i++){
                if(d[i] == 1){
                    cout<<q[i]<<" ";
                }
            }

            cout<<endl;
        }while(prev_permutation(d.begin(),d.end()));
        cout<<endl;

        q.clear();
    }


    return 0;
}

 

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

 

6603번: 로또

문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2

www.acmicpc.net

 

반응형

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

[BOJ] 1759번 암호 만들기  (0) 2019.09.17
[BOJ] 14888번 연산자 끼워넣기  (0) 2019.09.17
[BOJ] 10819번 차이를 최대로  (0) 2019.08.26
[BOJ] 10972번 다음 순열  (0) 2019.08.23
[BOJ] 9905번 1, 2, 3 더하기  (0) 2019.08.12