(cpp) Baekjoon 11650번 문제 ‘좌표정렬하기’ - 정렬

Baekjoon 11650번 문제 ‘좌표정렬하기’ - 정렬


문제

풀이

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include<stdio.h>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
vector<pair<int,int>> p;
int n,x, y;

bool cmp(const pair<int,int> &a, const pair<int,int> &b) {
	if (a.first == b.first){
		return a.second < b.second;
	}
	else {
		return a.first < b.first;

	}
}
int main() {
	//점 n개
	//좌표 (x,y);
	//x좌표 증가하는 순서로 배열, 만약 같으면 y좌표 비교.
	//(1 2) (3 4) (1 1)
	cin >> n;
	int ret = n;
	while (ret--) {
		cin >> x >> y;
		p.push_back(make_pair(x,y));
	}

	sort(p.begin(), p.end(), cmp);
	for (int i = 0; i < n; i++) {
		printf("%d %d\n", p[i].first, p[i].second);
	}

}