#include <bits/stdc++.h>
using namespace std;
bool compare(const pair<int,string> &a, const pair<int,string> &b) {
return a.first < b.first;
}
int main() {
cin.tie(NULL);
int N;
cin >> N;
vector< pair<int,string> > arr(N);
for(int i = 0; i < N; i++) {
cin >> arr[i].first >> arr[i].second;
}
stable_sort(arr.begin(), arr.end(),compare);
//sort(arr.begin(), arr.end(), compare);
for(auto it : arr) {
cout << it.first << " " << it.second << "\n";
}
}
몰랐는데 algorithm header에 stable_sort가 있습니다. 그래서 순서가 바뀌지 않고 sorting하는 것이 가능합니다.
따로 compare 함수를 만들어서 pair를 솔팅할 수 있도록 하였고 문제를 풀 때는 cin과 cout이 묶여 있을 필요가 없으므로
tie를 풀어 조금 더 속도를 높였습니다.
문제: https://www.acmicpc.net/problem/10814
10814번: 나이순 정렬
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을
www.acmicpc.net
'Problem Solving > 백준' 카테고리의 다른 글
[백준/C++] 11656번 접미사 배열 (0) | 2022.02.10 |
---|---|
[백준/C++] 10867번 중복 빼고 정렬하기 (0) | 2022.02.10 |
[백준/C++] 2693번 N번째 큰 수 (0) | 2022.02.10 |
[백준/C++] 10250번 ACM 호텔 (0) | 2022.01.28 |
[백준/Python] 2606번 바이러스 (DFS,BFS,유니온파인드) (0) | 2022.01.28 |