알고리즘/문제 풀이

백준 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';
    }
}

'알고리즘 > 문제 풀이' 카테고리의 다른 글

백준 9019 - DSLR(C++)  (1) 2023.11.23
백준 2504 - 괄호의 값(C++)  (0) 2023.04.28
백준 4470 - 줄번호  (0) 2022.11.17
백준 17608 - 막대기(C++)  (0) 2022.11.08
백준 9933 - 민균이의 비밀번호(C++)  (0) 2022.10.30