10814 - 나이순정렬

10814 문제 링크

접근법

vector와 algorithm 헤더를 사용하면 매우 쉽게 풀 수 있다. 나이와 이름을 입력받기 위해서 vector에 pair로 입력을 받았다.

#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;



bool cmp(pair<int,string> a, pair<int,string> b)
{
    return a.first < b.first;
}


int main()
{
    int N;
    vector <pair<int , string> > age_name;
    scanf("%d" , &N);
    int tmp_first;
    string tmp_second;

    for(int i=0; i< N; i++)
    {
        cin >> tmp_first >> tmp_second;
        age_name.push_back(make_pair(tmp_first,tmp_second));

    }

    stable_sort(age_name.begin(),age_name.end(),cmp);

    for(int i = 0; i<age_name.size(); i++)
    {
        printf("%d %s\n",age_name[i].first,age_name[i].second.c_str());
    }


    return 0;
}

결론

기존에 있는 헤더를 잘 사용하는것도 좋은 방법이다.

업데이트: