입력 코드
#include <stdio.h>
int arr[14];
int arr2[14];
int K;
void DFS(int Start,int Depth)
{
int i;
if (Depth == 6)
{
for (i = 0; i < 6; i++)
{
printf("%d ", arr2[i]);
}
printf("\n");
}
else
{
for (i = Start; i < K; i++)
{
arr2[Depth] = arr[i];
DFS(i + 1, Depth + 1);
}
}
}
int main()
{
int i;
while (1)
{
scanf("%d", &K);
if (K == 0)
break;
for (i = 0; i < K; i++)
scanf("%d", &arr[i]);
DFS(0, 0);
printf("\n");
}
}
코드 설명
#수학 #조합론 #백트래킹 #재귀
참고
문제 출처
'C' 카테고리의 다른 글
#106. [백준_C언어] 10971 : 외판원 순회 2 \ 백트래킹 (0) | 2021.03.07 |
---|---|
#104. [백준_C언어] 10974 : 모든 순열 \ 브루트포스 알고리즘 (0) | 2021.03.07 |
#103. [백준_C언어] 1094 : 막대기 \ 비트마스킹 (0) | 2021.02.27 |
#102. [백준_C언어] 11723 : 집합 \ 비트마스킹 (0) | 2021.02.27 |
#101. [백준_C언어] 15649 : N과 M (1) \ 백트래킹 (0) | 2021.02.26 |