1주차(자료구조) - [C++]백준11651 좌표 정렬하기 2
문제
예제 입력
코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool compare(pair<int, int> x1, pair<int, int> x2) {
if (x1.second == x2.second)
return x1.first < x2.first;
else
return x1.second < x2.second;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
vector< pair<int, int> > arr;
int x, y;
for (int i = 0; i < N; i++) {
cin >> x >> y;
arr.push_back({ x, y });
}
sort(arr.begin(), arr.end(), compare);
for (auto iter = arr.begin(); iter != arr.end(); iter++) {
cout << iter->first << " " << iter->second << "\n";
}
}
설명
C++ STL(표준 템플릿 라이브러리)에서 vector을 사용하여 좌표 x, y값을 저장해주며 sort함수로 정렬해주는데 기본적으로 정렬할때 앞에 있는 x값을 기준이 디폴트인데 비교함수를 넣어서 뒤에 y값부터 정렬하게 설정해주었습니다.
-pair<자료형, 자료형> 변수명; : 하나의 변수에 2가지 값을 저장함
<algorithm>
-sort(시작, 끝, 비교함수) : 배열의 크기만큼 정렬
<vector>
-vector<자료형> 변수명; : 배열 자료구조 사용