반응형
문제 출처
백준 온라인 저지
https://www.acmicpc.net/problem/10825
10825번: 국영수
첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1
www.acmicpc.net
문제
입 / 출력
풀이
sort 함수를 사용해서 compare로 구조체의 정렬 기준을 설정해서 출력한다
코드
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int n;
int a, b, c;
string s;
struct GPA {
string name;
int korean;
int english;
int math;
};
vector<GPA> arr;
bool compare(GPA a, GPA b) {
if (a.korean == b.korean)
if (a.english == b.english)
if (a.math == b.math)
return a.name < b.name;
else
return a.math > b.math;
else
return a.english < b.english;
else
return a.korean > b.korean;
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
GPA temp;
cin >> temp.name >> temp.korean >> temp.english >> temp.math;
arr.push_back(temp);
}
sort(arr.begin(), arr.end(), compare);
for (int i = 0; i < n; i++) {
cout << arr[i].name << "\n";
}
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[C++] BOJ 11655 ROT13 (0) | 2022.01.18 |
---|---|
[C++] BOJ 9012 괄호 (0) | 2022.01.18 |
[C++] BOJ 11052 카드 구매하기 (0) | 2022.01.05 |
[C++] BOJ 9461 파도반 수열 (0) | 2022.01.05 |
[C++] BOJ 2579 계단 오르기 (0) | 2022.01.05 |