알고리즘/BOJ

백준 6603번 로또

꾸준함. 2018. 6. 18. 16:11

문제 링크입니다: https://www.acmicpc.net/problem/6603


반복문을 사용해서도 풀 수 있는 것 같은데 언제나처럼 재귀호출을 이용해서 풀었습니다.


#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

 

const int MAX = 6;

 

int k;

int lotto[MAX];

int arr[13];

 

//idx1 arr의 인덱스, idx2 lotto의 인덱스

void printLotto(int idx1, int idx2)

{

        //6개 원소 모두 모였을 경우 출력

        if (idx2 == MAX)

        {

                 for (int i = 0; i < MAX; i++)

                         cout << lotto[i] << " ";

                 cout << endl;

                 return;

        }

 

        //순차적으로 넣어본다

        for (int i = idx1; i < k; i++)

        {

                 lotto[idx2] = arr[i];

                 printLotto(i + 1, idx2 + 1);

        }

}

 

int main(void)

{

        while (1)

        {

                 cin >> k;

                 if (k == 0)

                         break;

 

                 for (int i = 0; i < k; i++)

                         cin >> arr[i];

 

                 printLotto(0, 0);

                 cout << endl;

        }

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 1697번 숨바꼭질  (7) 2018.06.19
백준 1966번 프린터 큐  (0) 2018.06.18
백준 7579번 앱  (1) 2018.06.18
백준 2688번 줄어들지 않아  (0) 2018.06.17
백준 15724번 주지수  (0) 2018.06.17