공부/백준

11650번: 좌표 정렬하기(백준 C++)

상연 2020. 11. 1. 18:05

목차

    11650번: 좌표 정렬하기 링크

    코드

    #include <algorithm>
    #include <vector>
    using namespace std;
    
    bool compare(const pair<int, int> &a, const pair<int, int> &b){
        if(a.first == b.first){
            return a.second < b.second;
        }
        else{
            return a.first < b.first;
        }
    }
    int main() {
        vector <pair<int, int>> pos;
        int n;
        int tmp_x, tmp_y;
    
        scanf("%d", &n);
    
        for(int i=0; i<n; i++){
            scanf("%d %d", &tmp_x, &tmp_y);
            pos.push_back(make_pair(tmp_x, tmp_y));
        }
    
        sort(pos.begin(), pos.end(), compare);
        for(int j=0; j<n; j++){
            cout << pos[j].first << " " << pos[j].second << "\n";
        }
        return 0;
    }

    정리

    이 문제에 들어서면서 그 동안은 굳이 사용하지 않았던 Vector와 Pair를 사용했다.
    하면서, 이번기회에 확실히 익히고 앞으로는 Vector와 Pair에 대한 구글 검색을 최소화 하고자 정리를 하려 한다.

    Vector정리

    사견

    2개의 항목에 대해 정렬을 해 주어야 하기 때문에 vector에 pair를 사용 해 봤다.
    우선 첫 번째 항목을 비교했을 때 같으면 두번째 항목이 작은 것이 앞으로 오고,
    첫 번째 항목을 비교했을때 작은것이 앞으로 오게 해서 sort했다.

    '공부 > 백준' 카테고리의 다른 글

    10814번: 나이순 정렬(백준 C++)  (0) 2020.11.03
    1181번: 단어 정렬(백준 C++)  (0) 2020.11.02
    1427번: 소트인사이드(백준 C++)  (0) 2020.10.31
    2108번: 통계학(백준 C++)  (0) 2020.10.30
    10989번: 수 정렬하기3(백준 C++)  (0) 2020.10.29