728x90
매번 이렇게 내가 정렬 기준을 새로 정해서 정렬하는 문제는 항상 자바로 풀었어서 이번에는 새로 정렬하는 법을 공부하고 C++로 풀어봤다.
#include <iostream>
#include <algorithm>
#include <tuple>
#include <string>
using namespace std;
bool cmp(tuple<int, string, int>& p1, tuple<int, string, int>& p2) {
if (get<0>(p1) == get<0>(p2)) {
return (get<2>(p1) < get<2>(p2));
}
else return (get<0>(p1) < get<0>(p2));
}
int main() {
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int n;
cin >> n;
tuple<int, string, int>* arr = new tuple<int, string, int>[n];
for (int i = 0; i < n; i++) {
cin >> get<0>(arr[i]);
cin >> get<1>(arr[i]);
get<2>(arr[i]) = i;
}
sort(arr, arr + n, cmp);
for (int i = 0; i < n; i++) {
cout << get<0>(arr[i]) << " " << get<1>(arr[i]) << "\n";
}
return 0;
}
728x90
'알고리즘 문제' 카테고리의 다른 글
[백준] 2751번 수 정렬하기 2 (0) | 2020.01.31 |
---|---|
[백준] 10828번 스택 (0) | 2020.01.31 |
[백준] 1978번 소수 찾기 (0) | 2020.01.30 |
[백준] 4673번 셀프 넘버 (0) | 2020.01.30 |
[백준] 11722번 가장 긴 감소하는 부분 수열 (0) | 2020.01.29 |