티스토리 뷰

https://www.acmicpc.net/problem/11651

 

11651번: 좌표 정렬하기 2

첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

www.acmicpc.net

 

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

bool compare(const pair<int, int>&i, const pair<int, int>&j) 
{
    if (i.second == j.second){
        // y(두번째)가 같은 경우 i(첫번째) 오름차순
        return i.first < j.first;
    }
    else return i.second < j.second; 
} 

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    vector<pair<int, int>> v;
    int n, x, y;

    cin >> n;
    for(int i = 0; i < n; i++){
        cin >> x >> y;
        v.push_back(pair<int, int>(x,y));
    }

    sort(v.begin(), v.end(), compare);

    for(int i = 0; i < v.size(); i++){
        cout << v[i].first << ' ' << v[i].second << '\n';
    }
}

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함