0. 문제 |
1. 아이디어 |
1) 기존 정렬 문제에서 정렬 기준의 개수만 늘어났을 뿐이다.
2. 소스코드 |
#include <iostream>
#include <vector>
#include <algorithm>
#include <tuple>
using namespace std;
bool compare(tuple<string, int, int, int> t1, tuple<string, int, int, int> t2)
{
if (get<1>(t1) != get<1>(t2))
return get<1>(t1) > get<1>(t2);
else
{
if (get<2>(t1) != get<2>(t2))
return get<2>(t1) < get<2>(t2);
else
{
if (get<3>(t1) != get<3>(t2))
return get<3>(t1) > get<3>(t2);
else
return get<0>(t1) < get<0>(t2);
}
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
vector<tuple<string, int, int, int>> v;
for (int i = 0; i < N; i++)
{
string name;
int kor, eng, math;
cin >> name >> kor >> eng >> math;
v.push_back(make_tuple(name, kor, eng, math));
}
sort(v.begin(), v.end(),compare);
for (int i = 0; i < N; i++)
cout << get<0>(v[i]) << '\n';
}
3. 결과 |
4. 피드백 |
-
야호!!
'알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 11652번 - 카드 (0) | 2020.03.29 |
---|---|
[C++] 백준 10989번 - 수 정렬하기 3 (0) | 2020.03.29 |
[C++] 백준 10814번 - 나이순 정렬 (0) | 2020.03.28 |
[C++] 백준 11651번 - 좌표 정렬하기 2 (0) | 2020.03.28 |
[C++] 백준 11650번 - 좌표 정렬하기 (0) | 2020.03.28 |