반응형
문제링크: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';
}
반응형