반응형
백준 - 단계별로 풀어보기 [10814]
https://www.acmicpc.net/problem/10814
문제
풀이
원래의 순서를 손상시키지 않으면서 정렬하는것을 stable sort라고 한다.
본 문제는 C++의 sort처럼 algorithm 헤더에 들어있는 stable_sort를 통해서 풀이가 가능하다.
코드
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(pair<int,string> a, pair<int,string> b)
{
return a.first < b.first;
}
int main() {
int num;
cin >> num;
pair<int,string> tmp;
vector<pair<int,string>> arr;
for(int i = 0; i < num; i++)
{
cin >> tmp.first >> tmp.second;
arr.push_back(tmp);
}
stable_sort(arr.begin(),arr.end(),compare);
for(int i = 0; i < num; i++)
cout << arr[i].first << ' ' << arr[i].second << '\n';
}
평가
stable_sort라는 STL 함수가 있다는것을 알고 있다면 간단히 풀이가 가능하다.
만약 직접구현하려고하면 버블소트나 힙소트등의 stable sort류 정렬 알고리즘을 사용하면 된다.
반응형
'Algorithm > Baekjoon BOJ' 카테고리의 다른 글
[백준 / BOJ] - 15649번 N과 M(1) C++ 풀이 (1) | 2020.03.11 |
---|---|
[백준 / BOJ] - 5543번 상근날드 C++ 풀이 (0) | 2020.03.11 |
[백준 / BOJ] - 1181번 단어 정렬 C++ 풀이 (0) | 2020.03.03 |
[백준 / BOJ] - 11651번 좌표 정렬하기2 C++ 풀이 (0) | 2020.03.03 |
[백준 / BOJ] - 11650번 좌표 정렬하기 C++풀이 (0) | 2020.03.03 |