[BOJ 알고리즘, C++] #10814 나이순 정렬
BOJ 알고리즘 문제 풀이, 10814번 문제 : 나이순 정렬
입력받은 정보를 통해, 나이순으로 정렬하고 나이가 같다면 입력 순으로 정렬
문제
더보기
sort() 함수
풀이 과정
1. 나이와 이름을 한 객체에 저장하기위해 "pair <int, string>"을 생성합니다.
2. 각각의 pair들을 정렬 하기위해 "vector <pair <int, string>>"을 생성합니다.
3. sort()와 같은 형식으로 stable_sort()를 호출합니다.
3. stable_sort()은 비교 값의 크기가 같다면, 앞 선 원소와 인접한 바로 뒤의 원소의 상대적 위치를 유지합니다.
4. 사용자 정의 함수, comparision,의 경우, pair의 첫 번째 객체(나이)만 비교하여 정렬 동작을 돕습니다.
코드 작성
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
bool comparison (pair<int, string> a,
pair<int, string> b)
{
return a.first < b.first;
}
int main ()
{
int N;
cin >> N;
// 나이, 이름 pair
vector<pair<int, string>> vv;
pair<int, string> tmp;
for(int i=0; i<N; i++)
{
int age;
cin >> tmp.first >> tmp.second;
vv.push_back(tmp);
}
stable_sort(vv.begin(), vv.end(), comparison);
for(int i=0; i<N; i++)
{
cout << vv[i].first << " "<< vv[i].second << '\n';
}
}
'문제 풀이 > BOJ 문제 풀이' 카테고리의 다른 글
[BOJ알고리즘, C++]#11659_구간 합 구하기, Prefix Sum(누적 합) 알고리즘 (0) | 2022.06.29 |
---|---|
[BOJ알고리즘, C++]#15649 N과 M(1), 깊이 정렬, DFS (0) | 2022.02.12 |
[BOJ알고리즘, C++]#1181 단어 정렬 (0) | 2022.02.02 |
[BOJ알고리즘, C++]#11650 좌표 정렬하기 (0) | 2022.02.02 |
[BOJ알고리즘, C++]#1427 소트 인사이드 (0) | 2022.02.02 |