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