Notice
Recent Posts
Recent Comments
Link
궤도
[백준] 11650번 : 좌표 정렬하기 본문
문제
풀이
sort 함수에는 사실 3번째 인자가 있다. 이 3번째 인자를 통해 정렬의 조건을 입맛대로 바꿀 수 있다. 이 인자는 bool을 리턴하는 함수인데, 요구하는 인자의 형식이 중요하다. 그건 아래 코드를 보면 알 수 있다. 사용법도 코드의 주석에 써놓아서 여기에 또 쓸말이 없다. 아무튼 sort 함수는 참 좋다.
소스코드
#include <iostream>
#include <algorithm>
using namespace std;
struct point {
int x, y;
};
bool cmp(const point& p1, const point& p2) { //p1이 p2보다 앞에 있어야하는 조건
if (p1.x < p2.x)
return true;
else if (p1.x == p2.x)
return p1.y < p2.y;
else
return false;
}
int main() {
int N, i;
cin >> N;
point* arr = new point[N];
for (i = 0; i < N; i++)
cin >> arr[i].x >> arr[i].y;
sort(arr, arr + N, cmp); //구조체처럼 복잡한 비교는 세번째 인자를 건네줘서 할 수 있음
for (i = 0; i < N; i++)
cout << arr[i].x << ' ' << arr[i].y << '\n';
}
Comments