๐งจ ๋ฌธ์ ์ถ์ฒ
๋ฌธ์ ์ถ์ฒ : ๋ฐฑ์ค 11651๋ฒ - ์ขํ ์ ๋ ฌํ๊ธฐ2
๋ฌธ์ ๋์ด๋ : ์ค๋ฒ 5
๋ฌธ์ ๋งํฌ : www.acmicpc.net/problem/11651
๐งจ ์๊ณ ๋ฆฌ์ฆ ์ ํ ๋ฐ C++ ์ฝ๋
11650 ํ์ด๋ฅผ ์ ๋ฆฌํ๋ค๊ฐ ๋ถ๋ช y, x ์์๋ก ์ค๋ฆ์ฐจ์ ํ๋ ์ฝ๋๊ฐ ์์ ๊ฒ ๊ฐ์๋ค.
1) ์์๊ฐ ๋ฐ๋๋ฉด <second, first> ์์ผ๋ก ์ ๋ ฅ๋ฐ์ผ๋ฉด ์ด๋จ๊น ์ถ์๊ณ
2) ๋๋ sort์ compare ํจ์๋ฅผ ์ฌ์ฉ์ ์ง์ ์ผ๋ก ์๋ก ๋ง๋ค์ด ์ค ์๋ ์์๋ค
๋ ๋ค ํด๋ดค๋ค.
๊ฐ์ธ์ ์ผ๋ก๋ 1๋ฒ ๋ฐฉ๋ฒ์ด ๋ ์ฐฝ์์ ์ธ ๊ฑฐ ๊ฐ๋ค. sort ํจ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก first, second ์์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํ๊ธฐ ๋๋ฌธ์ second, first ์์ผ๋ก ์ ๋ ฌํด์ผ ํ๋ค๋ฉด ์ขํ๋ฅผ (y, x)๋ก ๋ฐ๊พธ์ด ์ ๋ ฅ๋ฐ๋ ๊ฒ์ด ํตํ ๊ฒ์ด๋ผ ์๊ฐํ๋ค. ๊ทธ๋ฆฌ๊ณ ํตํ๋ค.
#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
using namespace std;
int main(void) {
int n;
cin >> n;
vector<pair<int, int>> target(n);
for (int i = 0; i < n; i++) {
cin >> target[i].second >> target[i].first;
}
sort(target.begin(), target.end());
for (auto i : target) {
printf("%d %d\n", i.second, i.first);
}
return 0;
}
๋๋ฒ์งธ ๋ฐฉ๋ฒ์ ์๋ง ์ผ๋ฐ์ ์ผ๋ก ์ฐ์ด๋ ๋ฐฉ๋ฒ์ด ์๋๊น ์ถ์๋ฐ, sort ํจ์์ ์ธ๋ฒ์งธ ์ธ์์ธ compare ํจ์๋ฅผ ์ฌ์ฉ์ ๋ง์ถคํ์ผ๋ก ๋ง๋๋ ๊ฒ์ด๋ค. ๋ด๋ถ์ ์ผ๋ก๋ return x.first > y.first ์ผ๋ก ๊ตฌํ๋์ด ์์ ๊ฒ์ด๋ค. ์ขํ์ <x, y> ์์ x ๊ฐ์ผ๋ก ๋จผ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ , x ๊ฐ์ด ๊ฐ์ ๋ y๊ฐ์ผ๋ก ์ ๋ ฌํ๋ ๊ฒ์ด ๊ธฐ๋ณธ. ์ด๋ y ๊ฐ์ผ๋ก ๋จผ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ , y ๊ฐ์ด ๊ฐ์ ๋ x ๊ฐ์ผ๋ก ์ ๋ ฌํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด bool compare ํจ์๋ฅผ ๋ง๋ค์ด์ค๋ค. ์ค๋ฆ์ฐจ์์ด๋ ๋ด๋ฆผ์ฐจ์์ด๋, x๊ฐ ๋จผ์ ๋ y๊ฐ ๋จผ์ ๋ ๋ชจ๋ ์ด compare ํจ์์์ >, < ๊ตฌ๋ถํด์ ๋ง๋ค์ด์ฃผ๋ฉด ๋๋ค.
bool compare(const pair<int, int> &x, const pair<int, int> &y) {
if (x.second == y.second) return x.first < y.first;
return x.second < y.second;
}
์ด๋ณด๋ค ๋น ๋ฅผ ์ ์์ ๊ฑฐ ๊ฐ์๋ฐ ์๊ฐ์ด ํจ์ฌ ์งง์ ์ฌ๋์ด ์๊ธธ๋ ํ๋ฒ ๊ตฌ๊ฒฝํ๋ค. ๊ทธ๋ฌ๋๋ ์ ๊ธฐํ ์ฝ๋๊ฐ ์์๋ค.
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(false);
์ ์ฝ๋๋ C์ C++ ํ์ค stream์ ๋๊ธฐํ๋ฅผ ๋๋ ์ญํ ์ ํ๋ค. cin๊ณผ cout ์ ์๋๊ฐ C์ scanf, printf์ ๋นํด ์๋๊ฐ ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ ์ด ์ฝ๋๋ฅผ ์ฌ์ฉํด์ ์๋๋ฅผ ๋์ธ๋ค. ํ์ง๋ง ์ด๋ ๊ฒ ๋๊ธฐํ๋ฅผ ๋์ผ๋ฉด C์ ์ ์ถ๋ ฅ ํจ์๋ฅผ ๋์ด์ ์ฌ์ฉํ ์ ์๋ค. cin, cout๋ง ์ธ๊ฑฐ๋ผ๋ฉด ์ด ์ฝ๋๋ฅผ ์จ์ฃผ๋ ๊ฒ ์๋ ํฅ์์ ๋์์ด ๋๋ค.
'Problem Solving > BOJ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๊ธฐ๋ณธ๊ตฌํ๋ฌธ์ - 1550๋ฒ, 8393๋ฒ, 10869๋ฒ, 17256๋ฒ (C++ ์ฝ๋) (0) | 2021.01.07 |
---|---|
[BOJ] 11650๋ฒ - ์ขํ ์ ๋ ฌํ๊ธฐ (0) | 2021.01.07 |
[BOJ] 2751๋ฒ - ์ ์ ๋ ฌํ๊ธฐ 2 (0) | 2021.01.06 |
[BOJ] 2752๋ฒ - ์ธ ์ ์ ๋ ฌ (0) | 2021.01.02 |
[BOJ] 2750๋ฒ - ์ ์ ๋ ฌํ๊ธฐ (0) | 2021.01.02 |