Code
#include <stdio.h>
int main()
{
int N = 0, M = 0, dif = 0, sum =0, difmin = 0;
int num[101] = {};
int i, j, k;
scanf_s("%d %d", &N, &M);
difmin = M;
for (i = 0; i < N; i++)
{
scanf_s("%d", &num[i]);
}
for (i = 0; i < N - 2; i++)
{
for (j = i + 1; j < N - 1; j++)
{
for (k = j + 1; k < N; k++)
{
sum = num[i] + num[j] + num[k];
if (sum <= M)
{
dif = M - sum;
if (difmin > dif)
{
difmin = dif;
}
}
sum = 0;
}
}
}
sum = M - difmin;
printf("%d\n", sum);
return 0;
}
Ket Points
- 배열에서 3가지 수를 읽어오면서 비교하는 방식을 생각(코드 중간에 3중for문)
- for문을 돌면서 선택한 3가지 수의 합과 입력한 M값의 차들을 비교해 그 차가 0에 가장 가까운 3가지 수를 선택