본문 바로가기

Dev/BAEKJOON 백준

[백준/BOJ] 백준 코딩 알고리즘 6603번/C++

728x90
반응형

백준 코딩 알고리즘 문제 6603

 

백준 코딩 알고리즘 문제 6603번 풀이 - 사용 언어: C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//cout << "[i: " << i << "] start: " << start << " depth: " << depth << endl;
 
#include <iostream>
#define MAX_SIZE 13
 
using namespace std;
 
int allNum[MAX_SIZE];
int lotto[MAX_SIZE];
int k;
 
void searchLottoCombi(int start, int depth) {
 
    if (depth == 6) { //모든칸을 다 채우고 끝(깊이6)에 도달했을 때, 출력
        for (int i = 0; i < 6; i++)
            cout << lotto[i] << " ";
        cout << endl;
        return;
    }
 
    for (int i = start; i < k; i++) { //모든 후보 수를 for문을 통해 돌음
        lotto[depth] = allNum[i];
        searchLottoCombi(i + 1, depth + 1); //재귀함수를 통해 선택할 6개의 칸을 채움
    }
 
}
 
 
int main() {
 
    while (cin >> k && k) //k가 0이면 반복 중지
    {
        for (int i = 0; i < k; i++) {
            cin >> allNum[i];
        }
 
        searchLottoCombi(00);
 
        cout << endl;
    }
 
    return 0;
 
}
cs
728x90
반응형