https://www.acmicpc.net/problem/6603
#include <iostream>using namespace std;int s[49] = {0, };int k = 0;void printLotto(int *lotto) {for(int i = 0 ; i < 6; ++i) {printf("%d ", lotto[i]);}printf("\n");}void dfs(int *lotto, int depth, int startIdx, int endIdx) {// if (endIdx - startIdx <= 5) { // 더이상 dfs 탐색이 불가할 때// return;// }for (int i = startIdx ; i < endIdx ; ++i) {lotto[depth] = s[i];printf("%d : ", depth);if (lotto[5] != 0) {printLotto(lotto);lotto[5] = 0; // 출력 후 초기화} else { // 로또가 완성되지 않으면 다시 탐색dfs(lotto, depth + 1, startIdx + 1, endIdx);}}}int main(){scanf("%d", &k);while (k != 0) {int lotto[6] = {0, };for (int i = 0 ; i < k ; ++i) {scanf("%d", &s[i]);}dfs(lotto, 0, 0, k);scanf("%d", &k);}return 0;}
'알고리즘 풀이' 카테고리의 다른 글
백준 9084번 동전 (0) | 2018.01.24 |
---|---|
백준 10942번 팰린드롬? (0) | 2018.01.22 |
백준 1987번 알파벳 (0) | 2018.01.10 |
백준 2294번 동전2 (0) | 2018.01.08 |
백준 2667번 단지번호붙이기 (0) | 2018.01.05 |