알고리즘/문제 풀이
백준 11292 - 키 큰 사람(C++)
qqlzzb
2022. 12. 4. 23:08
문제
https://www.acmicpc.net/problem/11292
11292번: 키 큰 사람
입력은 여러개의 테스트케이스로 구성되어있다. 각 테스트케이스는 첫 번째 줄에 학생의 수 N (0 < N ≤ 50)이 주어지고, 이어서 N개의 줄에 각 학생의 이름과 키가 공백으로 구별되어 주어진다.
www.acmicpc.net
풀이
이름인 문자열과 키인 숫자가 주어지고, 키를 기준으로 정렬하는 문제이다.
이때 키가 같은 사람이 있을 수 있으므로 중복을 제거하는 map이 아닌 multimap을 사용하여 풀이했다.
코드
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main()
{
while(1)
{
multimap<float,string,greater<float>> m;
int n;
cin>>n;
if(n==0) break;
for(int i=0; i<n; i++)
{
string s;
float f;
cin>>s>>f;
m.insert({f,s});
}
float tmp=0;
for(auto iter = m.begin();iter!=m.end(); iter++)
{
if(tmp>iter->first) break;
cout<<iter->second<<" ";
tmp=iter->first;
}
cout<<'\n';
}
}