풀이
"백준 15652, N과 M (4)"를 참고해 풀이했다.
기존에는 1부터 입력받은 N까지의 수들 중에서 수열을 생성해야 했다.
이번에는 N개의 수를 이용해 수열을 생성하면 된다.
소스코드
#include <stdio.h>
#include <stdlib.h>
int arr[8], N, M, num[8];
int compare(const void *a, const void *b){
return *(int*)a - *(int*)b;
}
void BT(int depth){
for (int i = 0; i < N; i++){
if (!depth) arr[0] = num[i];
else{
int j;
for (j = 0; j < depth; j++)
if (arr[j] > num[i]) break;
if (j == depth) arr[depth] = num[i];
else continue;
}
if (depth + 1 == M){
for (int idx = 0; idx < M; idx++)
printf("%d ", arr[idx]);
putchar(10);
}else BT(depth + 1);
}
}
int main(){
scanf("%d %d", &N, &M);
for (int i = 0; i < N; i++)
scanf("%d", &num[i]);
qsort(num, N, sizeof(int), compare);
BT(0);
}
출처 및 참고자료
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 11689] GCD(n, k) = 1 [C] (0) | 2021.08.11 |
---|---|
[백준 17626] Four Squares [C] (0) | 2021.08.11 |
[백준 15654] N과 M (5) [C] (0) | 2021.08.10 |
[백준 15652] N과 M (4) [C] (0) | 2021.08.10 |
[백준 1788] 피보나치 수의 확장 [C] (0) | 2021.08.10 |