-
학급임원 뽑기 (중복X)코딩/C언어 2019. 9. 17. 16:02반응형1234567891011121314151617181920212223242526272829303132333435#include <stdio.h>#include <stdlib.h>void pick( char people[][20], int itemSize, int* bucket, int bucketSize, int k) { //중복 조합int i, lastIndex, smallest, item;if (k == 0) {for (i = 0; i < bucketSize; i++) {printf("%s ", people[bucket[i]]);}printf("\n");return;}lastIndex = bucketSize - k - 1; // 가장 최근에 뽑힌 수가 저장된 위치 indexif (bucketSize == k)smallest = 0;elsesmallest = bucket[lastIndex] + 1; // 조합for (item = smallest; item < itemSize; item++) {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 결과:
반응형