백준 2798 : 블랙잭

간단하게 생각해서 원소 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