<로또>
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <stack> #include <algorithm> int arr[15]; int output[15]; void dfs(int d, int s, int t) { if (d == 6) { for (int i = 0; i < 6; i++) { printf("%d ", output[i]); } printf("\n"); } else { for (int i = s; i < t; i++) { output[d] = arr[i]; dfs(d + 1, i + 1,t); } } } int main() { while (1) { int t; scanf("%d", &t); if (t == 0) {//종료조건 break; } for (int i = 0; i < t; i++) { scanf("%d", arr + i); } dfs(0, 0, t); printf("\n"); } return 0; }
재귀를 통해 풀었는데 결국 혼자풀지는 못했다.
재귀의 else문을 돌때 이미 돈건 돌지 않게 s값을 i+1로 가지고 가주어야 했는데 처음 설계시 그러지 못했다.
너무 슬프다ㅠ.