방법론 자체는 11651번과 완전하게 동일하다.
다만, x가 증가하는 것이 먼저 고려되어야 한다는 것을 이용하여 compare함수만 수정해주면 된다.
해당하는 알고리즘을 활용하여 코드를 작성하면 다음과 같다.
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <cstdlib>
using namespace std;
typedef struct{
int x;
int y;
}point;
bool compare(const point value1, const point value2){
if (value1.x == value2.x){
return value1.y < value2.y;
}
else{
return value1.x < value2.x;
}
}
int main(void){
int n;
cin >> n;
vector<point> cor_store;
for(int i = 0; i < n; i++){
point temp;
cin >> temp.x >> temp.y;
cor_store.push_back(temp);
}
sort(cor_store.begin(), cor_store.end(), compare);
for(int i = 0; i < n ; i++){
cout << cor_store[i].x << " " << cor_store[i].y << "\n";
}
return 0;
}