https://www.acmicpc.net/problem/2798
풀이
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int n,m;
int i{0},sum{0},tmp{100000},result{0};
cin >> n >> m;
vector<int> vec(n,0);
vector<bool> checker(n,true);
for(;i<n;++i) cin >> vec[i];
for(i=0;i<n-3;++i) checker[i]=false;
do{
sum=0;
for(i=0;i<n;++i) if(checker[i]) sum+=vec[i];
if((tmp >= m-sum) && m >= sum){
tmp = m-sum;
result=sum;
}
}while(next_permutation(checker.begin(),checker.end()));
cout << result << "\n";
return 0;
}
'코딩테스트 > [백준]단계별로풀어보기(C++)' 카테고리의 다른 글
[백준][1차원배열] 10798번 : X보다 작은 수 (C++) (0) | 2024.03.26 |
---|---|
[백준][1차원배열] 10807번 : 개수 세기 (C++) (0) | 2024.03.26 |
[백준][1차원배열] 10818번 : 최소, 최대 (C++) (0) | 2024.03.26 |
[백준][1차원배열] 5597번 : 과제 안 내신 분..? (C++) (0) | 2024.03.26 |
[백준][1차원배열] 10810번 : 공 넣기(C++) (0) | 2024.03.26 |