본문으로 바로가기
조합
#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] << " ";
    }
}

그 전요소는 절대 접근하지 않는다를 생각하면서 해결한다.