반응형

문제링크: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

 

전형적인 정렬문제입니다.

sort함수를 사용하여 구현하였습니다.

 

사용법을 모르신다면 아래링크를 참고해주세요.

https://gusdnr69.tistory.com/52?category=765773

 

sort함수 사용법

1. 헤더 선언 #include 2. sort( start, end) or sort( start, end, compare) ex) sort(arr, arr+n) sort(arr, arr+n,cmp) 시작주소와 끝주소 그리고 cmp함수가 필요합니다. sort( start, end) -> 이..

gusdnr69.tistory.com

 

그리고 결과값을 여러개 출력할때 endl을 사용하지 않는 습관을 기릅시다. ('\n' 사용을 지향합시다.)

 

정답코드입니다.

#include <iostream>
#include <algorithm>
using namespace std;
struct info {
	int y;
	int x;
};

bool cmp(info a, info b) {
	if (a.x < b.x)
		return true;
	else if (a.x == b.x)
		if (a.y < b.y)
			return true;
	return false;
}
int n = 0;
info arr[100001];
int main() {
	cin >> n;
	for (int i = 0; i < n; i++)
		cin >> arr[i].x >> arr[i].y;
	sort(arr, arr + n, cmp);
	for (int i = 0; i < n; i++)
		cout << arr[i].x << ' ' << arr[i].y << '\n';
}
반응형

+ Recent posts