코딩/C언어

회장, 부회장 뽑기

런던전통손만두 2019. 9. 17. 16:00
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <stdlib.h>
 
void pick(char people[][20], int itemSize, int* bucket, int bucketSize, int k) { //중복 조합
 
    int i, j, lastIndex, smallest, item, flag;
    if (k == 0) {
        for (i = 0; i < bucketSize; i++) {
            printf("%s ", people[bucket[i]]);
        }
        printf("\n");
        return;
    }
    lastIndex = bucketSize - k - 1// 가장 최근에 뽑힌 수가 저장된 위치 index
 
    smallest = 0;
 
    for (item = smallest; item < itemSize; item++) {
        flag = 0;
 
        for (j = 0; j <= lastIndex; j++)
            if (bucket[j] == item)
                flag = 1;
 
        if (flag == 1)
            continue;
        bucket[lastIndex + 1= item;
        pick(people, itemSize, bucket, bucketSize, k - 1);
    }
}
int main(void)
{
    char people[][20= { "공유""김수현""송중기""지성""현빈" };
    int * bucket, num;
 
    scanf("%d"&num);
    bucket = (int *)malloc(sizeof(int* num);
 
    pick(people, 5, bucket, num, num);
}
cs

 

결과:

 

반응형