알고리즘 풀이/백준

[10814] 백준 - 나이순 정렬(C++)

데롱디롱 2020. 4. 30. 01:57
728x90

* 생각하지 못한 점
- 벡터가 (나이, 이름)이렇게 쌍을 이루고 있고 어차피 회원가입 순서대로 입력이 되기 때문에
  나이에대해서만 정렬했었으나, sort()는 원래의 자리를 보존해준다는 보장이 없었기에 틀렸다고 나옴ㅠ
  => stable_sort()를 쓰자

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
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);
	ios_base::sync_with_stdio(false);
	
	long int N;
	cin >> N;
	
	vector<pair<int, string>> v(N);
	for (int i = 0; i < N; i++)
	{
		cin >> v[i].first >> v[i].second;
	}
	stable_sort(v.begin(), v.end(), compare);
	for (auto &k : v)
	{
		cout << k.first << " " << k.second << "\n";
	}
	return 0;
}