모든 경우의 수를 계산하여 최적의 결과를 도출하는 알고리즘
일명 노가다😓
3개의 반복문을 통해 모든 덧셈 결과를 비교해서 원하는 값과 가장 가까운 값을 찾아내면 된다.
https://www.acmicpc.net/problem/2798
#include <iostream>
using namespace std;
int main()
{
int num;
int max;
cin >> num >> max;
int *arr = new int[num];
for(int i = 0; i < num; i++)
cin >> arr[i];
int result = 0;
int sum = 0;
for(int i = 0; i < num; i++)
{
for(int j = i + 1; j < num; j++)
{
for(int k = j + 1; k < num; k++)
{
sum = arr[i] + arr[j] + arr[k];
if(sum <= max && sum > result)
result = sum;
}
}
}
cout << result << endl;
}