백준 (C99)/브루트 포스 (完)
백준 2798 : 블랙잭
caffhheine
2022. 2. 2. 17:47

간단하게 생각해서 원소 3개씩 집어서 다 더해본다음 M에서 빼서 차가 얼마나 적은가만 판별해주면 된다.
단, 주의 할 점은 음수는 고려하면 안된다는것. 0보다 크다는 조건을 빼먹지 말자
#include <stdio.h>
int solve() {
int N, M, min = 99999, sum = 0;
int arr[100];
scanf("%d %d", &N, &M);
for(int i=0;i<N;i++) {
scanf("%d", &arr[i]);
}
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++) {
if(M - (arr[i] + arr[j] + arr[k]) <= min && M - (arr[i] + arr[j] + arr[k]) >= 0) {
min = M - (arr[i] + arr[j] + arr[k]);
sum = arr[i] + arr[j] + arr[k];
}
}
}
}
printf("%d\n", sum);
}
int main() {
solve();
return 0;
}
어렵지 않은 문제였다