반응형

문제 출처 :


https://www.acmicpc.net/problem/11292



알고리즘 분석 :


문제 해결에 필요한 사항

1. Map STL :: http://crocus.co.kr/604


map과 vector를 잘 이용하면 쉽게 문제를 풀 수 있다.


map의 key를 height로, value를 vector로 선언하여 height에 해당하는 이름들을 vector에 달아준다.


그 뒤 map의 성질을 이용하여 가장 키가 큰 값은 가장 뒤에있을 것이니 

map.end() - 1상태의 vector에 들어있는 값을 모두 출력하면 가장 키가 큰 사람들의 이름이 모두 출력된다.














소스 코드 : 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <cstdio>
#include <vector>
#include <string>
#include <map>
 
using namespace std;
 
int main()
{
    while (1)
    {
        int n;
        scanf("%d"&n);
 
        if (!n)
            break;
 
        map<double, vector<string>> mp;
 
        for (int i = 0; i < n; i++)
        {        
            string name;
            double height;
            cin >> name >> height;
 
            mp[height].push_back(name);
        }
        auto it = mp.end();
        it--;
 
        for (auto i : it->second)
            cout << i << endl;
    }
    return 0;
}
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus



반응형

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

[11320번] 삼각 무늬 - 1  (2) 2017.09.21
[2810번] 컵홀더  (0) 2017.09.21
[6416번] 트리인가?  (0) 2017.09.18
[14648번] 쿼리 맛보기  (0) 2017.09.17
카카오 모의 테스트 풀이(주소 수록)  (0) 2017.09.15