#include <stdio.h>
int arr[100];
int input[100];
int n, k;
void combination(int cnt, int idx)
{
if(cnt == k)
{
for(int i = 0; i < k; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return;
}
// 중복값 유무 확인
int used[10000] = {0};
for(int i = idx; i < n; i++)
{
if(used[input[i]] == 0)
{
used[input[i]] = 1;
arr[cnt] = input[i];
combination(cnt+1, i+1);
}
}
}
int main(void)
{
scanf("%d %d", &n, &k);
for(int i = 0; i < n; i++)
{
scanf("%d", &input[i]);
}
// input 버블정렬 -> 사전순으로 출력하기 위해서
for(int i = n-1; i > 0; i--)
{
for(int j = 0; j < i; j++)
{
if(input[j] > input[j+1])
{
int temp = input[j];
input[j] = input[j+1];
input[j+1] = temp;
}
}
}
combination(0, 0);
return 0;
}
|
cs |
'Baekjoon > BruteForce' 카테고리의 다른 글
[백준 2309] 일곱 난쟁이 (조합) (C/C++) (1) | 2019.11.18 |
---|---|
[백준 2529] 부등호 (순열) (C/C++) (0) | 2019.11.18 |
[백준 15666] N과 M(12) (중복조합) (C/C++) (0) | 2019.11.18 |
[백준 15665] N과 M(11) (중복순열) (C/C++) (0) | 2019.11.18 |
[백준 15663] N과 M(9) (순열) (C/C++) (0) | 2019.11.18 |