#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int N, M;
cin >> N >> M;
vector<int> v;
for (int i = 0; i < N; i++)
{
int tmp;
cin >> tmp;
v.push_back(tmp);
}
int res = -1;
for (int i = 0; i < N; i++)
{
int A = v[i];
for (int j = i+1; j < N; j++)
{
int B = v[j];
for (int k = j + 1; k < N; k++)
{
int C = v[k];
int tmp2 = A + B + C;
if (tmp2 == M)
{
res = M;
break;
}
else if (tmp2 < M)
{
if (res < tmp2)
{
res = tmp2;
}
}
}
if (res == M)
{
break;
}
}
if (res == M)
{
break;
}
}
cout << res;
}
예전에 풀었던 문제.
break를 적절하지 않게 써서 틀렸다.
과거의 나는 return을 써서 풀었는데, 말랑말랑 두뇌교실이었구만..