Problem Solving/백준
[백준/C++] 11650번 좌표 정렬하기
높은곳에영광
2022. 1. 24. 02:34
#include <bits/stdc++.h>
using namespace std;
bool compare(pair<int,int> &a, pair<int,int> &b) {
if(a.first == b.first) {
return a.second < b.second;
} return a.first < b.first;
}
int main() {
int N;
cin >> N;
vector<pair<int,int>> arr(N);
for(int i = 0; i < N; i++) {
cin >> arr[i].first >> arr[i].second;
}
sort(arr.begin(), arr.end(), compare);
for(int i = 0; i < N; i++) {
cout << arr[i].first << " " << arr[i].second << "\n";
}
}
페어를 사용하여 sort 함수를 조금 응용하여 pair를 sort할 수 있도록 구현하였습니다. 그런데 가장 빠른 sort를 썼음에도 불구하고 자꾸 시간초과가 떠서 알아보니 end은 메모리를 비우는 무거운 작업이 포함되어 시간초과가 뜬다는 것을 알게되었습니다.
자세한 사항은 아래에 링크로 참조하겠습니다.
https://www.acmicpc.net/board/view/22716
글 읽기 - 추가 설명 및 다른 언어 빠른 입출력 방법
댓글을 작성하려면 로그인해야 합니다.
www.acmicpc.net
문제: 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