#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); arr[cnt] = 0; } } } 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 |
[백준 15664] N과 M(10) (조합) (C/C++) (0) | 2019.11.18 |
[백준 15663] N과 M(9) (순열) (C/C++) (0) | 2019.11.18 |