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;
}
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 |