반응형
정렬 문제였습니다.
풀이방법
stl에서 sort함수를 사용할 때 정렬 기준을 커스터마이징할 수 있습니다.
Code
#include <bits/stdc++.h>
using namespace std;
int n;
struct Student { string name; int korean, english, math; };
vector <Student> v;
bool cmp(Student &a, Student &b){
if(a.korean == b.korean){
if(a.english == b.english) {
if(a.math == b.math) return a.name < b.name;
return a.math > b.math;
}
return a.english < b.english;
}
return a.korean > b.korean;
}
int main(){
cin >> n;
for(int i = 0; i < n; i++){
string name;
int korean, english, math;
cin >> name >> korean >> english >> math;
v.push_back({name,korean,english,math});
}
sort(v.begin(),v.end(),cmp);
for(auto &s : v) cout << s.name << '\n';
}
'Algorithm > Sorting' 카테고리의 다른 글
(C++) - 백준(BOJ) 11497번 : 통나무 건너뛰기 (0) | 2021.05.01 |
---|---|
(C++) - 백준(BOJ) 1431번 : 시리얼 번호 답 (0) | 2021.05.01 |
(C++) - 백준(BOJ) 1744번 : 수 묶기 (0) | 2021.04.26 |
(C++) - 백준(BOJ) 1926번 : 수 정렬하기 5 (0) | 2021.03.14 |
(C++) - 프로그래머스(연습문제) : 문자열 내 마음대로 정렬하기 (0) | 2021.03.02 |