국영수

BiBi·2021년 1월 18일
0

코딩테스트연습

목록 보기
22/66
#include <algorithm>
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;

struct Grade {
	string name;
	int kor, eng, math;
};

bool compare(Grade a, Grade b) {
	if ((a.eng == b.eng) && (a.kor == b.kor) && (a.math == b.math)) {
		return a.name < b.name;
	}
	if ((a.eng == b.eng) && (a.kor == b.kor)) {
		return a.math > b.math;
	}
	if (a.kor == b.kor) {
		return a.eng < b.eng;
	}
	return a.kor > b.kor;

}
int main() {
	//freopen("input.txt", "rt", stdin);
	int n;
	scanf("%d", &n);
	vector<Grade> p(n);

	for (int i = 0; i < n; i++) {
		cin >> p[i].name >> p[i].kor >> p[i].eng >> p[i].math;
	}

	stable_sort(p.begin(), p.end(), compare);

	for (int i = 0; i < n; i++) {
		cout << p[i].name << '\n';
	}
	

	return 0;
}
profile
Server Network Engineer

0개의 댓글