๐งจ ๋ฌธ์ ์ถ์ฒ
๋ฌธ์ ์ถ์ฒ : ๋ฐฑ์ค
๋ฌธ์ ๋์ด๋ : ์ค๋ฒ 5
๋ฌธ์ ๋งํฌ : www.acmicpc.net/problem/11650
11650๋ฒ: ์ขํ ์ ๋ ฌํ๊ธฐ
์ฒซ์งธ ์ค์ ์ ์ ๊ฐ์ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ i๋ฒ์ ์ ์์น xi์ yi๊ฐ ์ฃผ์ด์ง๋ค. (-100,000 ≤ xi, yi ≤ 100,000) ์ขํ๋ ํญ์ ์ ์์ด๊ณ , ์์น๊ฐ ๊ฐ์ ๋ ์ ์ ์๋ค.
www.acmicpc.net
๐งจ ์๊ณ ๋ฆฌ์ฆ ์ ํ ๋ฐ C++ ์ฝ๋
๊ธฐ๋ณธ์ ์ผ๋ก ์ขํ ๋ฌธ์ ๋ผ์ <pair>๋ฅผ ์ฐ๋ ๊ฒ์ด ์ข๋ค. ์์ ์ C์ธ์ด ๊ณต๋ถํ ๋ pair๋ tuple์ ๊ตฌ์กฐ์ฒด๋ก ์ง์ ๋ง๋ค์ด๋ณด๋๊ฑฐ ํ์๋ ๊ฑฐ ๊ฐ์๋ฐ C++์ <utility> ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ค ์๋ค. pair<int, int> ๋ก ์ฐ๊ณ first, second๋ก ์ธ๋ฑ์ฑํด ๊ฐ์ ๋ฐ์์ฌ ์ ์๋ค. 2751๋ฒ ๋ฌธ์ ์ ํ์ ์ฆ์ผ๋ก cin์ scanf๋ก ๋ฐ๊ฟจ์ด์ผ ํ๋๋ฐ ๊ทธ๋ด ํ์ ์ ๋์ ๊ทธ๋๋ก cin ์ผ๋ค. ๋์ cout์ printf ์จ์คฌ๋ค ใ
์ขํ๋ผ๊ณ ํด์ ๊ธฐ์์ ๋ ฌ(radix sort)์ด ์๊ฐ๋ฌ๋๋ฐ ๋ง์ ๋ฐ์ง๊ณ ๋ณด๋ ๊ตณ์ด ๊ทธ๋ด ํ์๊ฐ ์์๋ค. ์ด๋ฏธ pair๋ก ํธํ๊ฒ ์ขํ ์ ๋ ฅ๋ฐ์ ๊น์ sort ๋ด์ฅํจ์ ์จ๋ณด์ ํ๋๋ฐ ๋ง์๋ค๊ณ ๋ฌ๋ค. ์ฐพ์๋ณด๋ pair์ sort๋ ์ข ์ข ๊ฐ์ด ์ฐ์ธ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก sort(v.begin(), v.end()) ํจ์๋ฅผ ์ฐ๋ฉด pair์ first ๊ฐ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋๊ณ , ๊ทธ ๋ค์์ผ๋ก second ๊ฐ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋๋ค๊ณ ํ๋ค. ๊ธฐ๋ณธ์ ์ธ x, y ์ค๋ฆ์ฐจ์ ๋ฌธ์ ์ฌ์ pair - sort ์กฐํฉ์ผ๋ก ์ ํ๋ ธ๋ค. ๋ง์ฝ y ๋จผ์ , x ๋ค์ ์ค๋ฆ์ฐจ์์ด๋ผ๋ฉด ์ ๊ทธ๋๋ sort ๋ฅผ ์จ๋ ๋๊ธด ํ๋ค. ๋๋ ๊ฐ๋จํ ์ ๋ ฌ ํจ์ ๋ง๋ค์ด ์ฃผ๋ฉด ๋๊ฒ ๋ค. (11651๋ฒ์ด ์ด ๋ฌธ์ ๊ธธ๋ ๋ฐ๋ก ํ์ด๋ด)
#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
using namespace std;
/*
* BOJ 11650 - ์ขํ ์ ๋ ฌํ๊ธฐ
* pair, sort๋ก ๊ฐ๋จํ๊ฒ ๊ตฌํ
*/
int main(void) {
int n;
cin >> n;
vector<pair<int, int>> target(n);
for (int i = 0; i < n; i++) {
cin >> target[i].first >> target[i].second;
}
sort(target.begin(), target.end());
for (auto r : target) {
printf("%d %d\n", r.first, r.second);
}
return 0;
}
์๋ฌด๋ฆฌ ์ฌ์ด ์ ๋ ฌ๋ฌธ์ ์ฌ๋ ํ ๋ง์ฃผ์น๋ฉด ํํ ํด๊ฒฐ๋ฐฉ๋ฒ์ ์๊ฐํด๋ด๊ธฐ ํ๋ ๊ฑฐ ๊ฐ๋ค. ๋ ์ฐ์ต์ด ํ์ํ๊ฒ ์ง..
'Problem Solving > BOJ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๊ธฐ๋ณธ๊ตฌํ๋ฌธ์ - 1330๋ฒ, 2525๋ฒ, 2588๋ฒ, 9498๋ฒ (C++ ์ฝ๋) (0) | 2021.01.07 |
---|---|
[BOJ] ๊ธฐ๋ณธ๊ตฌํ๋ฌธ์ - 1550๋ฒ, 8393๋ฒ, 10869๋ฒ, 17256๋ฒ (C++ ์ฝ๋) (0) | 2021.01.07 |
[BOJ] 11651๋ฒ - ์ขํ ์ ๋ ฌํ๊ธฐ 2 (0) | 2021.01.06 |
[BOJ] 2751๋ฒ - ์ ์ ๋ ฌํ๊ธฐ 2 (0) | 2021.01.06 |
[BOJ] 2752๋ฒ - ์ธ ์ ์ ๋ ฌ (0) | 2021.01.02 |