have to do_yeon

[백준 / C++] 10814. 나이순 정렬 본문

C++/Baekjoon (C++)

[백준 / C++] 10814. 나이순 정렬

또김또 2022. 8. 27. 19:18

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

 

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을

www.acmicpc.net

 

 


 

위 문제는 pair과 sort 개념을 활용하여 풀면 쉽게 풀 수 있다.

 

비교해주는 함수를 첫번째 인자만 사용해서 비교하게 한다.

그리고 함수를 정렬할 때 sort가 아닌 stable_sort를 사용해야 정답으로 인정된다. 첫번째 인자가 같을 경우 들어온 순서대로 정렬하게 한다.

 


제출 답안
#include <iostream>
#include <algorithm>
using namespace std;

int comp(pair<int, string> x, pair<int, string> y){
    return x.first < y.first;
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int N;
    cin>> N;

    pair<int, string> arr[N];

    for(int i = 0; i < N; i++){
        cin>> arr[i].first >> arr[i].second;
    }

    stable_sort(arr, arr + N, comp); 

    for(int i = 0; i < N; i++){
        cout<< arr[i].first << " " << arr[i].second << "\n";
    }
}
Comments