#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
'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 |