๋ฌธ์
์จ๋ผ์ธ ์ ์ง์ ๊ฐ์ ํ ์ฌ๋๋ค์ ๋์ด์ ์ด๋ฆ์ด ๊ฐ์ ํ ์์๋๋ก ์ฃผ์ด์ง๋ค. ์ด๋, ํ์๋ค์ ๋์ด๊ฐ ์ฆ๊ฐํ๋ ์์ผ๋ก, ๋์ด๊ฐ ๊ฐ์ผ๋ฉด ๋จผ์ ๊ฐ์ ํ ์ฌ๋์ด ์์ ์ค๋ ์์๋ก ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์จ๋ผ์ธ ์ ์ง ํ์์ ์ N์ด ์ฃผ์ด์ง๋ค. (1 โค N โค 100,000)
๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๊ฐ ํ์์ ๋์ด์ ์ด๋ฆ์ด ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ๋์ด๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉฐ, 200๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๊ณ , ์ด๋ฆ์ ์ํ๋ฒณ ๋์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ธธ์ด๊ฐ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋ฌธ์์ด์ด๋ค. ์ ๋ ฅ์ ๊ฐ์ ํ ์์๋ก ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค๋ถํฐ ์ด N๊ฐ์ ์ค์ ๊ฑธ์ณ ์จ๋ผ์ธ ์ ์ง ํ์์ ๋์ด ์, ๋์ด๊ฐ ๊ฐ์ผ๋ฉด ๊ฐ์ ํ ์์ผ๋ก ํ ์ค์ ํ ๋ช ์ฉ ๋์ด์ ์ด๋ฆ์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
3
21 Junkyu
21 Dohyun
20 Sunyoung
์์ ์ถ๋ ฅ 1
20 Sunyoung
21 Junkyu
21 Dohyun
ํ์ด
์ฒ์์๋ sort๋ฅผ ์ฌ์ฉํ๋ค.
vector<pair<int, string>> ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ๋์ด์์ผ๋ก sortํ๋ฉด ๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฐ๋ฐ ํ๊ฐ์ง ๊ฐ๊ณผํ ์ฌ์ค์ด ์๋ค.
sort ํจ์๋ unstable sort๋ฅผ ์ํํ๋ ํจ์๋ผ์ ์กฐ๊ฑด์ด ๊ฐ์ ๋ ๊ธฐ์กด์ ์์๋ฅผ ์ ์งํ๋ค๋ ๋ณด์ฅ์ด ์๋ค.
๋ฐ๋ผ์ ๊ธฐ์กด์ ์์๋ฅผ ์ ์งํด์ฃผ๋ stable_sort๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
์ฝ๋
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool Solve(pair<int, string> a, pair<int, string> b) {
return a.first < b.first;
}
int main()
{
vector<pair<int, string>> v;
int n;
int age;
string name;
cin >> n;
for(int i = 0; i < n; i++) {
cin >> age >> name;
v.push_back(pair<int, string>(age, name));
}
stable_sort(v.begin(), v.end(), Solve);
for(int i = 0; i < v.size(); i++) {
cout << v[i].first << " " << v[i].second << "\n";
}
return 0;
}
'๐ฅ๏ธ Computer > Algorithm Solution' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON] 27866๋ฒ : ๋ฌธ์์ ๋ฌธ์์ด (0) | 2023.07.25 |
---|---|
[BAEKJOON] 1157๋ฒ : ๋จ์ด ๊ณต๋ถ (0) | 2023.07.24 |
[BAEKJOON] 2960๋ฒ : ์๋ผํ ์คํ ๋ค์ค์ ์ฒด (0) | 2020.07.09 |
[LeetCode] 389. Find the Difference (1) | 2020.03.25 |
[LeetCode] 397. Integer Replacement (0) | 2020.03.24 |
๋ฌธ์
์จ๋ผ์ธ ์ ์ง์ ๊ฐ์ ํ ์ฌ๋๋ค์ ๋์ด์ ์ด๋ฆ์ด ๊ฐ์ ํ ์์๋๋ก ์ฃผ์ด์ง๋ค. ์ด๋, ํ์๋ค์ ๋์ด๊ฐ ์ฆ๊ฐํ๋ ์์ผ๋ก, ๋์ด๊ฐ ๊ฐ์ผ๋ฉด ๋จผ์ ๊ฐ์ ํ ์ฌ๋์ด ์์ ์ค๋ ์์๋ก ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์จ๋ผ์ธ ์ ์ง ํ์์ ์ N์ด ์ฃผ์ด์ง๋ค. (1 โค N โค 100,000)
๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๊ฐ ํ์์ ๋์ด์ ์ด๋ฆ์ด ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ๋์ด๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉฐ, 200๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๊ณ , ์ด๋ฆ์ ์ํ๋ฒณ ๋์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ธธ์ด๊ฐ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋ฌธ์์ด์ด๋ค. ์ ๋ ฅ์ ๊ฐ์ ํ ์์๋ก ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค๋ถํฐ ์ด N๊ฐ์ ์ค์ ๊ฑธ์ณ ์จ๋ผ์ธ ์ ์ง ํ์์ ๋์ด ์, ๋์ด๊ฐ ๊ฐ์ผ๋ฉด ๊ฐ์ ํ ์์ผ๋ก ํ ์ค์ ํ ๋ช ์ฉ ๋์ด์ ์ด๋ฆ์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
3
21 Junkyu
21 Dohyun
20 Sunyoung
์์ ์ถ๋ ฅ 1
20 Sunyoung
21 Junkyu
21 Dohyun
ํ์ด
์ฒ์์๋ sort๋ฅผ ์ฌ์ฉํ๋ค.
vector<pair<int, string>> ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ๋์ด์์ผ๋ก sortํ๋ฉด ๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฐ๋ฐ ํ๊ฐ์ง ๊ฐ๊ณผํ ์ฌ์ค์ด ์๋ค.
sort ํจ์๋ unstable sort๋ฅผ ์ํํ๋ ํจ์๋ผ์ ์กฐ๊ฑด์ด ๊ฐ์ ๋ ๊ธฐ์กด์ ์์๋ฅผ ์ ์งํ๋ค๋ ๋ณด์ฅ์ด ์๋ค.
๋ฐ๋ผ์ ๊ธฐ์กด์ ์์๋ฅผ ์ ์งํด์ฃผ๋ stable_sort๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
์ฝ๋
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool Solve(pair<int, string> a, pair<int, string> b) {
return a.first < b.first;
}
int main()
{
vector<pair<int, string>> v;
int n;
int age;
string name;
cin >> n;
for(int i = 0; i < n; i++) {
cin >> age >> name;
v.push_back(pair<int, string>(age, name));
}
stable_sort(v.begin(), v.end(), Solve);
for(int i = 0; i < v.size(); i++) {
cout << v[i].first << " " << v[i].second << "\n";
}
return 0;
}
'๐ฅ๏ธ Computer > Algorithm Solution' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON] 27866๋ฒ : ๋ฌธ์์ ๋ฌธ์์ด (0) | 2023.07.25 |
---|---|
[BAEKJOON] 1157๋ฒ : ๋จ์ด ๊ณต๋ถ (0) | 2023.07.24 |
[BAEKJOON] 2960๋ฒ : ์๋ผํ ์คํ ๋ค์ค์ ์ฒด (0) | 2020.07.09 |
[LeetCode] 389. Find the Difference (1) | 2020.03.25 |
[LeetCode] 397. Integer Replacement (0) | 2020.03.24 |