이 문제를 완벽하게 이해하고 풀기 위해서
vector cotainer, pair, sort, stable_sort를 공부하였습니다.
pair를 제외하고는 다 제 블로그 안에 글들이 있으니 혹시 잘 모르신다면 한번 보시고
문제를 푸시는 걸 추천드립니다.
https://www.acmicpc.net/problem/10814
이 문제에서 중요한 사항중에 하나는 sort와 stable_sort의 차이점을 아는 것이 중요했던 것 같습니다.
불안정정렬을 사용할 경우
나이가 같다면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 출력하라는 것이었습니다.
그렇다면 sort를 사용할 경우 가입한 순으로 나오지 않을 수 있기 때문에
stable_sort를 사용해야합니다.
처음으로 vector와 pair, stable_sort를 사용하며 편리하다는 생각과 빨리 익숙해져야겠다는 생각도 하였습니다.
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
#include<string.h>
#include<utility>
#include<algorithm>
#include<vector>
using namespace std;
bool compare(pair<int, string> a, pair<int, string> b) {
return a.first < b.first;
}
int main()
{
pair<int, string> tmp;
vector<pair<int, string>> arr;
int testCase;
cin >> testCase;
for (int i = 0; i < testCase; i++) {
cin >> tmp.first >> tmp.second;
arr.push_back(tmp);
}
stable_sort(arr.begin(), arr.end(), compare);
for (int i = 0; i < testCase; i++) {
cout << arr[i].first << " " << arr[i].second << "\n";
}
}
'백준 문제 풀이 & C++ 공부' 카테고리의 다른 글
백준 10828번 C++ (0) | 2021.08.19 |
---|---|
백준 10816번 C++ & upper_bound, lower_bound (0) | 2021.08.18 |
C++ sort & stable_sort (0) | 2021.07.07 |
C++ Vector Container (0) | 2021.07.05 |
백준 9012 C++ & cin.ignore() (0) | 2021.07.04 |