#include <iostream>
#include <vector>
#include <utility> // pair
#include <algorithm>
using namespace std;
int main(int argc, char **argv){
int N;
scanf("%d",&N);
vector<pair<long, long> > arr;
pair<long, long> tmp; // 값 입력받을 pair
for(int i=0; i<N; i++){
cin >> tmp.first >> tmp.second; // 좌표 입력받기
arr.push_back(tmp); // 입력받은 pair 벡터에 넣기
}
sort(arr.begin(), arr.end()); // 페어의 경우 first가 같으면 second로 비교하게끔 이미 sort함수에서 구현
for(int i = 0; i < arr.size(); i++){
cout << arr[i].first << " " << arr[i].second << "\n"; // endl 시간초과
}
return 0;
}
무수히 많은 시간 초과의 오류를 거쳐서 탄생한 코드. 인터넷을 참 많이도 뒤졌다.
utility 헤더를 통해 pair를 구현할 수 있다. sort함수를 이용하면 first가 같으면 second로 비교하기에 sort함수를 이용해서 간단히 구현할 수 있다.
cin과 endl은 시간이 오래 걸리므로 적게 사용하는 것이 좋다. 한번에 여러개를 입력받을 수 있도록 하고, endl대신 '\n'를 사용하자.
scanf로 벡터를 입력받을 수 없다. pair로 이루어졌기 때문이다. pair 데이터로 입력을 받은 후에 arr에 값을 push_back하여 집어넣어주기로 하자.