풀이전략
- 고정적으로 3번의 연산이 이루어지므로 for문으로 진행했다.
- 연속적인 수가 아니므로, 떨어진 상태로 있는 컨테이너 확인해야 한다.
소스코드
#include <iostream>
#include <vector>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main() {
int max = 0;
int n = 0, m = 0;
cin >> n >> m;
vector<int>v(n, 0);
for (int i = 0; i < v.size(); i++)
cin >> v[i];
int sum = 0;
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
for (int k = j + 1; k < n; k++)
{
sum = v[i] + v[j] + v[k];
if (sum <= m && max < sum)
{
max = sum;
}
}
}
}
cout << max << endl;
return 0;
}