๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“• STUDY/Algorithm

[C / C++] ๋ฐฑ์ค€ 11651๋ฒˆ - ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ 2

https://www.acmicpc.net/problem/11651

 

11651๋ฒˆ: ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ 2

์ฒซ์งธ ์ค„์— ์ ์˜ ๊ฐœ์ˆ˜ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” i๋ฒˆ์ ์˜ ์œ„์น˜ xi์™€ yi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (-100,000 ≤ xi, yi ≤ 100,000) ์ขŒํ‘œ๋Š” ํ•ญ์ƒ ์ •์ˆ˜์ด๊ณ , ์œ„์น˜๊ฐ€ ๊ฐ™์€ ๋‘ ์ ์€ ์—†๋‹ค.

www.acmicpc.net

 

โœ… ๋ฌธ์ œ ์„ค๋ช…

์ˆซ์ž N์„ ์ž…๋ ฅํ•œ ํ›„ N๊ฐœ์˜ x, y์ขŒํ‘œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด,

y์ขŒํ‘œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.


โœ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช…

y์ขŒํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋˜ y์ขŒํ‘œ๊ฐ€ ๊ฐ™์œผ๋ฉด x์ขŒํ‘œ๋ฅผ ๋น„๊ตํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ C++ STL sort()๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค.

๐Ÿ’ก sort()
vector์— ์žˆ๋Š” ๊ฐ’์„ ์ •๋ ฌํ•  ๋•Œ๋Š” first ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ๊ฐ’์ด ๊ฐ™์€ ๊ฒฝ์šฐ second ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.

 

์ด ๋ฌธ์ œ ์—ญ์‹œ y์ขŒํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ๊ฐ’์ด ๊ฐ™์€ ๊ฒฝ์šฐ x์ขŒํ‘œ๋ฅผ ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์—

sort()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌํ•˜์˜€๋‹ค.

 

๋Œ€์‹  y์ขŒํ‘œ ๊ธฐ์ค€์ด๊ธฐ ๋•Œ๋ฌธ์— vector์— ๊ฐ’์„ ๋„ฃ์„ ๋•Œ y, x ์ˆœ์œผ๋กœ ๋„ฃ์–ด์ค€ ํ›„

์ถœ๋ ฅํ•  ๋•Œ๋Š” x, y ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜์˜€๋‹ค.


โœ… ์ฝ”๋“œ_C++

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);

    int n;
    cin >> n;

    vector<pair<int, int>> v;
    while (n--) {
        int x, y;
        cin >> x >> y;
        v.push_back({ y,x });
    }
    sort(v.begin(), v.end());
    
    for (int i = 0; i < v.size(); i++) {
        cout << v[i].second << ' ' << v[i].first << '\n';
    }
    return 0;
}