No Rules Rules

좌표 정렬하기 (feat. 백준, 11650번) 본문

생활/코테

좌표 정렬하기 (feat. 백준, 11650번)

개발하는 완두콩 2022. 8. 2. 22:40
728x90
반응형

좌표 정렬하기
https://www.acmicpc.net/problem/11650

 

11650번: 좌표 정렬하기

첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

www.acmicpc.net

반응형
// woohyeon.kim
// https://www.acmicpc.net/problem/11650
#include <iostream>
#include <algorithm>
using namespace std;
inline bool cmp(const pair<int, int>& v1, const pair<int, int>& v2) {
	if (v1.first == v2.first)
		return v1.second < v2.second;
	return v1.first < v2.first;
}
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
	register int N;
	pair<int, int> arr[100000];
	cin >> N;
	for (register int i = 0; i < N; ++i)
		cin >> arr[i].first >> arr[i].second;
	sort(arr, arr + N, cmp);
	for (register int i = 0; i < N; ++i)
		cout << arr[i].first << " " << arr[i].second << "\n";
	return 0;
}
// *&)*@*
  1. stl의 sort를 이용하여 문제를 풀어보았습니다.
  2. sort의 predicate인 cmp 함수는 없어도 동일한 결과를 도출합니다만(pair의 first에 대해서 오름차순, 같다면 second에 대해서 오름차순으로 정렬하는 것이 sort의 기본 동작입니다.) 만약 문제의 조건이 다르다면 cmp를 이용하여 정렬을 조정할 수 있으므로 참고하세요.
728x90
반응형
Comments