10814. stable_sort()
https://www.acmicpc.net/problem/10814
10814번: 나이순 정렬
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을
www.acmicpc.net

[풀이]
해당 문제는 pair의 first를 기준으로 오름차순 정렬하는 문제인데 first가 같을 때 먼저 입력 받은 pair를 먼저 출력하는 문제이다. 그냥 sort를 사용해서 구현해도 입력받은 순서대로 정렬되는 것처럼 보이지만 실제로 이를 보장하진 않는다. 따라서 stable_sort()를 사용해 이를 보장받아야 한다.
#include <bits/stdc++.h>
using namespace std;
vector<pair<int, string>> a;
bool cmp(pair<int, string> a, pair<int, string> b) {return a.first < b.first;}
int main(){
ios::sync_with_stdio(0); cin.tie(0);
int T; cin >> T;
while(T--){
int tmp;
string tmp_str;
cin >> tmp >> tmp_str;
a.push_back({tmp, tmp_str});
}
stable_sort(a.begin(), a.end(), cmp);
for (auto i:a) cout << i.first << ' ' << i.second << '\n';
}
'PS' 카테고리의 다른 글
BOJ - 1929. 소수 구하기 (C++) (0) | 2024.06.02 |
---|---|
SWEA - 1926. 간단한 369게임 (C++) (0) | 2024.04.27 |
완전탐색 연습문제 (C++) (0) | 2024.03.30 |
BOJ - 1260. DFS와 BFS (C++) (0) | 2024.03.19 |
BOJ - 1697. 숨바꼭질 (C++) (0) | 2024.03.18 |
10814. stable_sort()
https://www.acmicpc.net/problem/10814
10814번: 나이순 정렬
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을
www.acmicpc.net

[풀이]
해당 문제는 pair의 first를 기준으로 오름차순 정렬하는 문제인데 first가 같을 때 먼저 입력 받은 pair를 먼저 출력하는 문제이다. 그냥 sort를 사용해서 구현해도 입력받은 순서대로 정렬되는 것처럼 보이지만 실제로 이를 보장하진 않는다. 따라서 stable_sort()를 사용해 이를 보장받아야 한다.
#include <bits/stdc++.h>
using namespace std;
vector<pair<int, string>> a;
bool cmp(pair<int, string> a, pair<int, string> b) {return a.first < b.first;}
int main(){
ios::sync_with_stdio(0); cin.tie(0);
int T; cin >> T;
while(T--){
int tmp;
string tmp_str;
cin >> tmp >> tmp_str;
a.push_back({tmp, tmp_str});
}
stable_sort(a.begin(), a.end(), cmp);
for (auto i:a) cout << i.first << ' ' << i.second << '\n';
}
'PS' 카테고리의 다른 글
BOJ - 1929. 소수 구하기 (C++) (0) | 2024.06.02 |
---|---|
SWEA - 1926. 간단한 369게임 (C++) (0) | 2024.04.27 |
완전탐색 연습문제 (C++) (0) | 2024.03.30 |
BOJ - 1260. DFS와 BFS (C++) (0) | 2024.03.19 |
BOJ - 1697. 숨바꼭질 (C++) (0) | 2024.03.18 |