문제링크 : https://www.acmicpc.net/problem/11292
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = 987654321;
bool cmp(pair<string, float>&a, pair<string, float>& b)
{
return a.second > b. second;
}
vector<pair<string, float>>v;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
while(1)
{
v.clear();
int T;
cin >> T;
if(!T) break;
for(int i=0; i<T; i++)
{
string s;
float h;
cin >> s >> h;
v.push_back({s, h});
}
sort(v.begin(), v.end(), cmp); //내림차순 정렬
cout << v[0].first <<" ";
for(int i=1; i<T; i++)
{
if(v[0].second == v[i].second) cout << v[i].first << " "; //제일 큰 값이랑 같으면 이어서 출력
else break;
}
cout << "\n";
}
return 0;
}
큰 값부터 출력해야 하기에 내림차순으로 정렬을 해준다.
이때 들어가는 값이 문자와 숫자이기에 숫자를 기준으로 정렬해준다.
숫자를 기준으로 정렬하고 정렬된 문자를 출력하되, 맨 첫번째 값(제일 큰 값)이랑 같으면 이어서 출력하고 아니면 종료한다.
'백준 > 실버' 카테고리의 다른 글
[백준 25947번] 선물할인 (C++) (0) | 2023.06.09 |
---|---|
[백준 14244번] 트리 만들기 (C++) (0) | 2023.06.06 |
[백준 14715번] 전생했더니 슬라임 연구자였던 건에 대하여 (easy) (C++) (0) | 2023.06.02 |
[백준 14562번] 태권왕 (C++) (0) | 2023.05.31 |
[백준 12845번] 모두의 마블 (C++) (0) | 2023.05.30 |