-
백준 11650 - 좌표 정렬하기백준 algorithm 2020. 7. 23. 19:32반응형
=> pair와 sort 함수를 사용할 줄 아는지 묻는 문제입니다.
=> x좌표와 y좌표는 같이 움직여야하는 하나의 객체이므로, 클래스로 표현하여도 되지만, 이미 c++ 에는 pair가 있습니다.
=> pair를 사용해서 푸시면 훨씬 간단하게 해결이 가능합니다.
- x좌표와 y좌표를 입력받은 후 pair를 작성한 후, vector에 삽입한다.
- 문제에 주어진대로, x좌표를 먼저 비교하고, y좌표를 비교하여 정렬시킨다.
<sort>
bool cmp(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; } }
=>x좌표가 같으면 y좌표를 확인하는 비교 함수
https://codingham.tistory.com/185
=> pair 형 vector를 정렬하는 방법입니다. 한번 확인하시면 좋습니다.
<code>
#include <iostream> #include <algorithm> #include <vector> using namespace std; bool cmp(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() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int N; cin >> N; vector<pair<int, int>> arr; for(int i=0; i<N; i++) { int x,y; cin >> x; cin >> y; pair<int, int> tmp = make_pair(x, y); arr.push_back(tmp); } sort(arr.begin(), arr.end(), cmp); for(int i=0; i<arr.size(); i++) { cout << arr[i].first<<" "<<arr[i].second <<'\n'; } return 0; }
반응형'백준 algorithm' 카테고리의 다른 글
백준 1264 - 모음의 개수 (1) 2020.07.24 백준 10814 - 나이순 정렬 (0) 2020.07.23 백준 2667 - 단지번호붙이기 (0) 2020.07.23 백준 1015 - 수열 정렬 (0) 2020.07.15 백준 1924 - 2007년 (0) 2020.07.10