C언어/문제풀다 하나씩

다른 블로그 참고한 조합 재귀방법 0자리를 비우고 for 문 안 씀

mcdn 2020. 5. 27. 20:45
반응형
#include <iostream>
#include <string>
using namespace std;

int n, k;
int arr[6];
int choice[6];
int cnt;

void comb(int number, int idx) {
	if (idx > k) {
		for (int i = 1; i <= k;i++) {
			cout << choice[i]<<" ";
		}cout << endl;
		return;
	}
	if (number > n) {
		return;
	}
	choice[idx] = arr[number];
	comb(number, idx + 1);
	comb(number + 1, idx );
	/*
	순열
	comb(number +1, idx +1);
	comb(number + 1, idx);
	*/
}
int main() {
	cin >> n >> k;
	for (int i = 1; i <= n;i++) {
		cin >> arr[i];
	}
	comb(1, 1);
	return 0;
}


 

반응형

'C언어 > 문제풀다 하나씩' 카테고리의 다른 글

경로 찾기 장애물 있고  (0) 2020.05.29
등수일때는 index-1하기  (0) 2020.05.27
string == 이거 된다!  (0) 2020.05.27
동전 개수 세기  (0) 2020.05.27
더 직관적인 char int 바꾸기  (0) 2020.05.27
가장 큰 숫자 작은 숫자 찾기. 비효율적임  (0) 2020.05.27
중복 순열 문제  (0) 2020.05.27
오랜만에 간단한 순열 문제  (0) 2020.05.27