백준 알고리즘 11651번 문제
문제 : https://www.acmicpc.net/problem/11651
C++ 풀이 :
#include <iostream>
#include <utility>
#include <algorithm>
#include <vector>
using namespace std;
bool compare(pair<int, int> a, pair<int, int> b)
{
if (a.second == b.second) //y값이 같으면, x값이 증가하는 순
return a.first < b.first;
else //y값이 다르면, y값이 증가하는 순
return a.second < b.second;
}
int main(void)
{
//점의 개수 N개 입력
int N;
cin >> N;
vector<pair<int, int>> v(N); //좌표값이 저장되는 벡터 선언
for (int i = 0; i < N; i++)
cin >> v[i].first >> v[i].second; //N개 점의 좌표값 입력
sort(v.begin(), v.end(), compare); //compare 함수에 맞게 정렬
for (int i = 0; i < N; i++) //결과 출력
cout << v[i].first << " " << v[i].second << endl;
return 0;
}