🔓알고리즘/수학
여러개의 최댓값,최솟값 찾기 C++
Mawile
2020. 11. 8. 02:23
개발환경 >> DevCpp
언어 >> C++11 WinAPI
운영체제 >> Windows10
안녕하세요!!!
이번에는 심심해서
vector에 저장된값에서
여러개의 최댓값과 최솟값을 동시에 찾는 알고리즘을 만들어봤습니다~~~
<< 여러개의 최댓값, 최솟값 찾기 >>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef pair<double,double> pii;
int main(){
vector<pii>ans;
vector<double>db;
double d;
int n,j,s;
cin >> n >> s; //원소갯수,구할 최댓값 최솟값의 갯수
if(s*2>n) return 0;
for(j=0;j<n;j++){
cin >> d;
db.push_back(d);
}
for(j=0;j<s;j++){
auto a = minmax_element(db.begin(),db.end());
ans.push_back(pii(*a.first,*a.second)); //최댓값과 최솟값 넣기
db.erase(a.first);
if(a.first<a.second) db.erase(a.second-1); //찾은최솟값이 최댓값보다 배열상에서 앞에있을경우
else db.erase(a.second); //찾은최솟값이 최댓값보다 배열상에서 뒤에있을경우
}
cout << endl;
for(j=0;j<ans.size();j++) cout << ans[j].first << " " << ans[j].second << endl;
}
궁금한 부분이 있다면 댓글로 질문주세요!!