Written by JS970
on
on
2798 - 블랙잭
- 난이도: 브론즈 2
- 날짜: 2023년 2월 5일
- 상태: Correct
- 추가 검토 여부: No
solution
- 100개의 수 중 3개의 수의 합에 대한 경우의 수를 구하는 연산은 200,000보다 작은 수이고, 이는 3중 for문을 돌려도 문제 없이 구현 가능하다.
code
#include <iostream>
using namespace std;
int main()
{
int N, M;
cin >> N;
cin >> M;
int * arr = new int[N];
for(int i = 0; i < N; i++)
scanf("%d", &arr[i]);
int sum = 0;
int ans = -1;
for(int i = 0; i < N-2; i++)
{
for(int j = i+1; j < N-1; j++)
{
for(int k = j+1; k < N; k++)
{
sum = arr[i] + arr[j] + arr[k];
if(sum <= M) ans = (ans < sum) ? sum : ans;
}
}
}
cout << ans << endl;
return 0;
}