문제
풀이
이 문제는 x축 y축의 값을 입력받아 x축을 기준으로 정렬을 진행하되, x축의 값이 동일할 경우 y축의 값을 기준으로 정렬하는 문제입니다. 그냥 보았을 때는 이차원 배열로 입력받아 sort 함수를 이용하여 풀이를 진행하면 될 것 같지만, 이차원 배열을 sort 함수를 이용하여 정렬할 경우 오류가 발생하여 정렬할 수 없습니다.
이럴때는 vector를 이용하고, vector에서 pair<>를 이용하여 값을 쌍으로 저장해주면 쉽게 해결할 수 있습니다. 먼저 쌍의 값을 저장할 vector <pair<int,int>> v 를 선언해주고 두 개의 값을 입력받을 때마다 vector v에 저장해줍니다. 모두 입력받았으면 sort 함수를 이용하여 정렬을 해주면 됩니다. 소스코드는 아래와 같습니다.
소스코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{ vector <pair<int,int>> v;
int a,b;
int num;
cin>>num;
while(num--){
cin >> a >> b;
v.push_back(make_pair(a,b));
}
sort(v.begin(),v.end());
for(int i=0; i<v.size(); i++){
cout << v[i].first<<" "<<v[i].second << "\n";
}
}
'Algorithm > Python, C++' 카테고리의 다른 글
백준 1181_단어정렬 [C++] (0) | 2022.07.19 |
---|---|
백준 11651_좌표 정렬하기 2 [C++] (0) | 2022.07.18 |
백준 1427_소트인사이드 [C++] (0) | 2022.07.15 |
백준 10989_수 정렬하기3 [C++] (0) | 2022.07.14 |
백준 2750_수 정렬하기 [C++] (0) | 2022.07.13 |
댓글