# 문제링크
STL의 sort 에 compare 함수로 구현했습니다.
# 제출 코드
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
struct Student {
string name;
int kor;
int eng;
int math;
};
bool compare(const Student&a, const Student&b) {
if (a.kor > b.kor) return true;
else if (a.kor == b.kor) {
if (a.eng < b.eng) return true;
else if (a.eng == b.eng) {
if (a.math > b.math) return true;
else if (a.math == b.math)
return a.name < b.name;
}
}
return false;
}
int main() {
int n;
cin >> n;
vector<Student>v(n);
for (int i = 0; i < n; i++) {
cin >> v[i].name >> v[i].kor >> v[i].eng >> v[i].math;
}
sort(v.begin(), v.end(), compare);
for (int i = 0; i < n; i++) {
cout << v[i].name <<'\n';
}
return 0;
}
반응형
'Computer Science&Engineering > 코딩테스트' 카테고리의 다른 글
[백준 2309] 일곱 난쟁이 (0) | 2021.03.22 |
---|---|
[백준 11004] K번째 수 (0) | 2021.03.20 |
[백준 10814] 나이순 정렬 (0) | 2021.03.20 |
[백준 11651] 좌표 정렬하기 2 (0) | 2021.03.20 |
[백준 11650] 좌표 정렬하기 C++ STL활용풀이 (0) | 2021.03.20 |