#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(00);
        
    return 0;
}
 
cs

+ Recent posts