[C++][백준]2798번: 블랙잭

lea_hwang·2022년 3월 18일
0

알고리즘

목록 보기
9/19

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

#include <iostream>
using namespace std;


int main(){   
    int N, M;
    int total;
    int max_num = 0;

    cin >> N >> M;
    
    int cards[N];
    
    for (int i = 0; i < N; i++){
        cin >> cards[i];
    }

    for(int i=0;i<N;i++){
        for(int j=i+1;j<N;j++){
            for(int k=j+1;k<N;k++){
                total = cards[i] + cards[j] + cards[k];
                if(total > M){
                    continue;
                }
                if(max_num < total){
                    max_num = total;
                }
            }
        }
    }
        
    cout << max_num;
    return 0;
}

단순 포문 세개 돌리면 되는 문제인데,, 왜 재귀로 풀려고 끙끙 알았던가...ㅠㅠ 동적할당도 해보려 애를 써보고 했는데.. 그럴 필요가 전혀 없던 문제였다..

이 문제와는 상관없지만 시간 초과가 나서 입출력 시간을 줄여주는 코드를 발견하였다.

    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

해당 코드를 쓰면 c의 scanf, printf와 같은 함수를 사용할 수 없다고 한다.
https://www.acmicpc.net/problem/15552

profile
끊임없이 도전하는 개발자, 황희원입니다 :)

0개의 댓글