본문 바로가기

Problem Solving/백준

[백준] 11651번 : 좌표 정렬하기 2

C++ vector의 pair를 이용하고, sort에서 비교함수를 사용자 정의 하는 문제.

내가 짠 코드

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

using namespace std;

bool comp(pair<int, int>a, pair<int, int>b){
    if(a.second == b.second) return a.first < b.first;
    return a.second < b.second;
}

int main(void){
    int N,i,x,y;
    vector <pair < int, int > > sets;

    scanf("%d",&N);
    for(i=0;i<N;i++){
        scanf("%d %d",&x,&y);
        sets.push_back(make_pair(x,y));
    }

    sort(sets.begin(),sets.end(),comp);

    for(i=0;i<N;i++) printf("%d %d\n",sets[i].first,sets[i].second);

    return 0;
}

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

 

'Problem Solving > 백준' 카테고리의 다른 글

[백준] 9012: 괄호  (0) 2021.02.24
[백준] 10816: 숫자 카드 2  (0) 2021.02.24
[백준] 1009: 분산처리  (0) 2021.02.19
[백준] 1032: 명령 프롬프트  (0) 2021.02.19
[백준] 1026번: 보물  (0) 2021.02.19