https://www.acmicpc.net/problem/11650
[소스코드]
#include <iostream>
#include <algorithm>
using namespace std;
// [baekjoon] 11650번 - 좌표 정렬하기
// 2023.01.22
struct coordinate {
int x;
int y;
};
bool compare(coordinate a, coordinate b) {
if (a.x == b.x) { // x좌표가 같으면
return a.y < b.y; // b의 y좌표가 더 크도록 정렬
}
else { // x좌표가 다르면
return a.x < b.x; // b의 x좌표가 더 크도록 정렬 (=x좌표가 증가하는 순으로)
}
}
int main(void) {
cin.tie(NULL);
ios::sync_with_stdio(false);
int n, tmp;
cin >> n;
coordinate arr[100001];
for (int i = 0; i < n; i++) {
cin >> arr[i].x >> arr[i].y;
}
sort(arr, arr + n, compare);
for (int i = 0; i < n; i++) {
cout << arr[i].x << " " << arr[i].y << "\n";
}
return 0;
}
c++ sort를 이용하여 간단히 해결할 수 있는 정렬 문제입니다.
좌표를 구조체를 만들어 입력받은 후 sort()함수로 정렬합니다.
"\n" 대신 endl을 사용하는 경우 시간 초과가 나옵니다.
c++ sort는 아래 게시글을 참고해주세요
https://sirius7.tistory.com/85
'학습 정리 > 👨💻 PS Study' 카테고리의 다른 글
[C++] 백준 11729번 - 하노이 탑 이동 순서 (0) | 2023.01.31 |
---|---|
[C++] 백준 2108번 - 통계학 (0) | 2023.01.22 |
[C++] 백준 1181번 - 단어 정렬 (0) | 2023.01.04 |
[C++] 백준 25305번 - 커트라인 (0) | 2023.01.04 |
[C++] 백준 2563번 - 색종이 (0) | 2023.01.04 |