간단하게 생각해서 원소 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;
}
어렵지 않은 문제였다
'백준 (C99) > 브루트 포스 (完)' 카테고리의 다른 글
백준 1018 : 체스판 다시 칠하기 (0) | 2022.02.04 |
---|---|
백준 1436 : 영화감독 숌 (0) | 2022.02.03 |
백준 7568 : 덩치 (0) | 2022.02.02 |
백준 2231 : 분해합 (0) | 2022.02.02 |
Comment