Problem
https://www.acmicpc.net/problem/11650
2차원 평면에 점 N개가 주어졌다고 하자. 좌표를 x좌표가 증가하는 순으로, x좌표가 같다면 y좌표가 증가하는 순서로 정렬하시오.
Solution
#include<iostream>
#include<algorithm>
using namespace std;
struct info{
int x;
int y;
};
// 앞에 오는 a보다 뒤에오는 b가 더 크도록, 오름차순 정렬
bool check(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;
info arr[100001];
int main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n;
for(int i=0;i<n;i++)
cin >> arr[i].x >> arr[i].y;
sort(arr, arr+n, check);
for(int i=0;i<n;i++)
cout << arr[i].x << ' ' << arr[i].y << '\n';
return 0;
}
- 좌표값 x, y를 가지고 있는 구조체 info를 만든다.
- arr이라는 이름의 구조체 배열을 만든다.
- sort(시작 주소, 끝 주소, 정렬 조건)
'코딩 테스트 > 백준 (C++, Python)' 카테고리의 다른 글
cpp) 백준 1931: 회의실 배정 (0) | 2023.06.08 |
---|---|
cpp) 백준 11866: 요세푸스 문제 0 (0) | 2023.06.08 |
cpp) 백준 11050: 이항 계수 1 (0) | 2023.06.08 |
cpp) 백준 1929: 소수 구하기 (1) | 2023.06.08 |
cpp) 백준 11005: 진법 변환 2 (0) | 2023.06.08 |