이번 문제는 정렬로 간단하게 해결하였다.
vector<pair<string, int>>
형을 사용한다.bool compare(pair<string, int> a, pair<string, int> b){
return a.second>b.second;
}
compare함수에서 오름차순으로 정렬하고 싶다면 return a.second>b.second
를 return a.second<b.second
로 변경해주면 된다.
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int t, n;
vector<pair<string, int>> yj;
void Input(){
cin>>n;
for(int i=0; i<n; i++){
string a;
int b;
cin>>a>>b;
yj.push_back(make_pair(a, b));
}
}
bool compare(pair<string, int> a, pair<string, int> b){
return a.second>b.second;
}
void Solution(){
sort(yj.begin(), yj.end(), compare);
cout<<yj[0].first<<endl;
}
void Solve(){
cin>>t;
for(int i=0; i<t; i++){
Input();
Solution();
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
Solve();
return 0;
}