문제출처 : https://www.acmicpc.net/problem/11651
code
#include <iostream>
#include<vector>
#include <algorithm>
using namespace std;
bool compare(const pair<int, int>& a, const pair<int, int>& b)
{
if (a.second == b.second)
return a.first < b.first;
return a.second < b.second;
}
int main()
{
int N;
cin >> N;
vector<pair<int, int>> v(N);
for (int i = 0; i < N; i++)
cin >> v[i].first >> v[i].second;
sort(v.begin(), v.end(), compare);
for (int i = 0; i < N; i++)
cout << v[i].first << " " << v[i].second << '\n';
return 0;
}
벡터를 페어로 묶은다음 compare함수로 정렬하는 방법이다.