โจ Algorithm
[๋ฐฑ์ค/C++] 11651๋ฒ : ์ขํ ์ ๋ ฌํ๊ธฐ 2
nitronium102
2021. 9. 6. 21:24
๋ฌธ์
2์ฐจ์ ํ๋ฉด ์์ ์ N๊ฐ๊ฐ ์ฃผ์ด์ง๋ค. ์ขํ๋ฅผ y์ขํ๊ฐ ์ฆ๊ฐํ๋ ์์ผ๋ก, y์ขํ๊ฐ ๊ฐ์ผ๋ฉด x์ขํ๊ฐ ์ฆ๊ฐํ๋ ์์๋ก ์ ๋ ฌํ ๋ค์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ ์ ๊ฐ์ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ i๋ฒ์ ์ ์์น xi์ yi๊ฐ ์ฃผ์ด์ง๋ค. (-100,000 ≤ xi, yi ≤ 100,000) ์ขํ๋ ํญ์ ์ ์์ด๊ณ , ์์น๊ฐ ๊ฐ์ ๋ ์ ์ ์๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ์ ์ ์ ๋ ฌํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
// 11651๋ฒ ์ขํ ์ ๋ ฌํ๊ธฐ 2
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<pair<int, int>> dots;
bool compare(const pair<int, int> &a, const pair<int, int> &b){
if (a.second != b.second)
return a.second < b.second;
return a.first < b.first;
}
int main(){
int n;
cin >> n;
dots.assign(n, {0, 0});
for (int i=0; i<n; i++){
cin >> dots[i].first >> dots[i].second;
}
sort(dots.begin(), dots.end(), compare);
for (int i=0; i<n; i++){
cout << dots[i].first << " " << dots[i].second << "\n";
}
}