본문 바로가기

백준/C++

[C++] 백준 11651번 - 좌표 정렬하기 2

728x90

 

문제 11651번

https://www.acmicpc.net/problem/11651

 

이번에는 어제에 이어 좌표 정렬하기 2번째 문제이다.

 

어제와는 반대로 y좌표가 증가하는 순으로 하고, 만약 y좌표가 같으면 x좌표가 증가하느 순서로 정렬하는 문제이기 때문에 sort의 compare함수를 이용하여 y좌표가 같으면 x가 작은 것부터, 다르면 y가 작은 것부터 정렬한다.

 

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
int N, x, y;

vector <pair <int, int>> v;

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

int main() {
	cin >> N;
	for (int i = 0; i < N; i++) {
		cin >> x >> y;
		v.push_back(make_pair(x, y));
	}
	sort(v.begin(), v.end(), compare);

	for (int i = 0; i < N; i++) {
		cout << v[i].first << ' ' << v[i].second << '\n';
	}
	return 0;
}

 

 

 

 

728x90

'백준 > C++' 카테고리의 다른 글

[C++] 백준 10610번 - 30  (0) 2024.05.10
[C++] 백준 2075번 - N번째 큰 수  (0) 2024.05.08
[C++] 백준 11650번 - 좌표 정렬하기  (0) 2024.05.06
[C++] 백준 10824번 - 네 수  (0) 2024.05.05
[C++] 백준 2631번 - 줄세우기  (0) 2024.05.03