백준 10814번 문제 write-up입니다.
https://www.acmicpc.net/problem/10814
10814번: 나이순 정렬
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을
www.acmicpc.net
나이 순으로 오름차순 정렬하면 됩니다.
다만, 나이가 같으면 먼저 가입한 순서(입력받은 순서)로 정렬한다는 조건이 있습니다.
C++에서 정렬하려면 algorithm header에 있는 sort()를 사용하면 됩니다.
다만, 원소가 같은 경우 어떤 원소가 먼저 정렬될 지 예측할 수 없습니다.
따라서 이 같은 경우 stable_sort()를 사용합니다.
stable_sort()는 비교 원소가 같은 경우 입력된 순서대로 정렬하기 때문에 이 문제에 적합합니다.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(pair<int, string> a, pair<int, string> b) {
return a.first < b.first;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n;
vector<pair<int, string>> v;
cin >> n;
for(int i = 0; i < n; i++) {
int age; string name;
cin >> age >> name;
v.push_back(make_pair(age, name));
}
stable_sort(v.begin(), v.end(), compare);
for(auto i : v) cout << i.first << ' ' << i.second << '\n';
}
'PS > BOJ' 카테고리의 다른 글
[PS] 백준 10825번 - 국영수 | Python (0) | 2022.11.16 |
---|---|
[PS] 백준 1003번 - 피보나치 함수 | C++ (0) | 2022.11.01 |
[PS] 백준 10824번 - 네 수 | C++ (0) | 2022.10.28 |
[PS] 백준 25305번 - 커트라인 | C++ (0) | 2022.10.24 |
[PS] 백준 23628번 - 악마의 연차 계산기 | C++ (1) | 2022.10.18 |
댓글