백준 (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; 
}

 

어렵지 않은 문제였다

댓글수0