본문 바로가기

코딩테스트

[C++] MultiMax

숙제 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