boj 2797 c++ 블랙잭

https://www.acmicpc.net/problem/2798

 

#include <bits/stdc++.h>
using namespace std;

int a[105];

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    
    int n, m;
    cin>>n>>m;

    for(int i=0; i<n; i++){
        cin>>a[i];
    }
    int ans=0;

    for(int i=0; i<n;i++){
        for(int j=i+1; j<n; j++){
            for(int k=j+1; k<n; k++){
                if(m>=a[i]+a[j]+a[k]&&(ans<a[i]+a[j]+a[k]))
                    ans=a[i]+a[j]+a[k];
            }
        }
    }
    cout<<ans;
}

삼중for문 형태로 카드 값들을 합쳤을때, m보다 작거나 같으면서, max value를 저장할 ans보다 크다면 ans를 갱신하는 방향으로 코드를 작성하였다. 

 

  Comments,     Trackbacks