조합
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
vector<int> num;
vector<int> answer;
bool check[101];
int n;
void go(int index, int cnt, int sum) {
if (cnt == 2) {
answer.push_back(sum);
return;
}
for (int i = index; i < n; i++) {
if (check[i] == true) continue;
check[i] = true;
go(i, cnt + 1, sum + num[i]);
check[i] = false;
}
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
cin >> n;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
num.push_back(x);
}
go(0,0,0);
for (int i = 0; i < answer.size(); i++) {
cout << answer[i] << " ";
}
}
그 전요소는 절대 접근하지 않는다를 생각하면서 해결한다.
'Algorithm > 코테정리' 카테고리의 다른 글
[코테정리] C++ Map 사용법 (0) | 2021.11.11 |
---|---|
[코테정리] C++ 소수점 N자리 출력하기 (0) | 2021.09.09 |
[코테정리] C++ vector 기법 (0) | 2021.06.07 |
[코테정리] C++ 윤년, 윤달, 요일 출력하기 (0) | 2021.06.07 |
[코테정리] C++ N자리 2진수 만들기 및 2진수 변환 (0) | 2021.06.07 |