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 41 42 43 44 45 | #include <iostream> #include <vector> using namespace std; vector<int> numbers; vector<int> combination; int N, K; // 총 N 개중 K를 골라 조합을 만든다. void input() { cin >> N >> K; numbers.resize(N); for (int i = 0; i < N; ++i) cin >> numbers[i]; } void PrintCombi(const vector<int>& v) { for (int i = 0; i < v.size(); ++i) { cout << v[i] << " "; } cout <<endl; } void Combi(int offset, int k) { if (k == 0) { PrintCombi(combination); return; } for (int i = offset; i <= numbers.size() - k; ++i) { combination.push_back(numbers[i]); Combi(i + 1, k - 1); combination.pop_back(); } } int main() { input(); Combi(0, K); return 0; } |
2019년 4월 13일 토요일
# 조합( nCk :: n개중 k개를 이용한 ) 구하기
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기