문제 링크입니다: https://www.acmicpc.net/problem/10825
문제에 주어진 조건대로 정렬 조건 함수를 정의하면 되는 문제였습니다.
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int MAX = 100000;
pair<pair<string, int>, pair<int, int>> student[MAX];
bool cmp(pair<pair<string, int>, pair<int, int>> a, pair<pair<string, int>, pair<int, int>> b)
{
if (a.first.second > b.first.second)
return true;
else if (a.first.second == b.first.second)
{
if (a.second.first < b.second.first)
return true;
else if (a.second.first == b.second.first)
{
if (a.second.second > b.second.second)
return true;
else if(a.second.second == b.second.second)
if (a.first.first < b.first.first)
return true;
}
}
return false;
}
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
for (int i = 0; i < N; i++)
cin >> student[i].first.first >> student[i].first.second >> student[i].second.first >> student[i].second.second;
sort(student, student + N, cmp);
for (int i = 0; i < N; i++)
cout << student[i].first.first << "\n";
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > BOJ' 카테고리의 다른 글
백준 3109번 빵집 (0) | 2019.02.07 |
---|---|
백준 1991번 트리 순회 (0) | 2019.02.06 |
백준 9613번 GCD 합 (2) | 2019.02.05 |
백준 11655번 ROT13 (0) | 2019.02.05 |
백준 10820번 문자열 분석 (0) | 2019.02.05 |