본문 바로가기
백준 문제풀이

BOJ/6603

by alscks 2024. 1. 25.
<로또>
#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로 가지고 가주어야 했는데 처음 설계시 그러지 못했다.

너무 슬프다ㅠ.

'백준 문제풀이' 카테고리의 다른 글

BOJ/8393  (0) 2024.01.25
BOJ/1182  (0) 2024.01.25
BOJ/1012  (1) 2024.01.24
BOJ/14620  (2) 2024.01.24
BOJ/2529  (2) 2024.01.22