알고리즘/JM북

149p 조합 찾기

quantdave 2017. 2. 5. 20:17

#include <iostream>

#include <vector>

using namespace std;


void printPicked(const vector<int> &picked)

{

for(auto i = picked.begin(); i!=picked.end(); i++)

{

cout<<*i<<" ";

}

cout<<endl;

}

void pick(int n, vector<int> &picked, int toPick)

{

if(toPick == 0){

printPicked(picked);

return ;

}


int smallest = picked.empty() ? 0 : picked.back()+1;

for(int next = smallest; next<n; ++next)

{

picked.push_back(next);

pick(n, picked,toPick-1);

picked.pop_back();

}

}

int main()

{

vector<int> a;

pick(5,a, 3);

}