숙제 5 (MultiMax)
정수가 쓰여 있는 n장의 카드가 주어질 때, 두 장 혹은 세 장의 카드에서 구할 수 있는 곱의 최댓값을 계산하는 프로그램을 작성하시오.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
/*
case:
n*n-1
1*2
1*2*3
n-2*n-1*n
1*2*n
*/
int main(){
int num=0x00;
cin>>num;
int tmp=0x00;
vector<int> arr;
for(int i=0;i<num;i++){
cin>>tmp;
arr.push_back(tmp);
}
sort(arr.begin(),arr.end());
vector<int> sum;
sum.push_back(arr[num-1]*arr[num-2]);
sum.push_back(arr[0]*arr[1]);
sum.push_back(arr[num-1]*arr[num-2]*arr[num-3]);
sum.push_back(arr[0]*arr[1]*arr[2]);
sum.push_back(arr[0]*arr[1]*arr[num-1]);
sort(sum.begin(),sum.end());
cout<<sum[4]<<endl;
return 0;
}
'코딩테스트' 카테고리의 다른 글
[C++] 해밍코드 (0) | 2021.07.07 |
---|---|
[C++] 체크썸 (0) | 2021.07.07 |
[C++] 괄호 (0) | 2021.06.29 |
[C++] 방의 크기 구하기 (0) | 2021.06.29 |
[C++] 절단 대각선 (Broken Diagonal) (0) | 2021.06.29 |