매일 조금씩

백준 6603번 : 로또 [C++] 본문

알고리즘/Graph (DFS, BFS)

백준 6603번 : 로또 [C++]

mezo 2020. 8. 9. 16:59
728x90
반응형

 

 

 

 

DFS와 비슷하게 재귀를 활용하면 풀수 있는 문제였다.

 

 

 

#include <iostream>
#include <queue>
//#include <cstring> //memset
#include <algorithm>
using namespace std;

const int MAX = 6;

int K;
int lotto[MAX];
int t[13];

//idx1은 t의 인덱스, idx2는 lotto의 인덱스
void printLotto(int idx1, int idx2) {
	if (idx2 == MAX) {
		for (int i = 0; i < MAX; i++) {
			cout << lotto[i] << " ";
		}
		cout << endl;
		return;
	}

	// i에 idx1을 대입!!!!!!!!
	for (int i = idx1; i < K; i++) {
		lotto[idx2] = t[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 >> t[i];
		}

		printLotto(0, 0);
		cout << endl;
	}
	

	return 0;
}
728x90
반응형