P1008 - 성적 관리 프로그램 3 - 준랩 (joonlab.net)
로그인 - 준랩
joonlab.net
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii; // 첫 번째가 first, 두 번째가 second
bool cmp(pii a, pii b)
{
// 만약 두 값이 같지 않으면
// 내림차순이 목표이니 a를 반환
if (a.first != b.first) {
return a.first > b.first;
}
// 만약 두 값이 모두 같다면
// 어느걸 반환해도 상관없다.
else
{
return a.second < b.second;
}
}
int main()
{
// 학생의 수 n
int n;
// a[i].first: 학생의 평균, a[i].second: 학생 번호
pii a[104];
// 학생 수 입력 받기
scanf("%d", &n);
// n명의 학생 평균 구하기
for (int i = 0; i < n; i++)
{
// 학생의 총점 저장 변수 sum
int sum = 0;
// 5개 과목 점수 받고 sum에 더해주기
for (int j = 0; j < 5; j++)
{
int x;
scanf("%d ", &x);
sum += x;
}
// 학생별 평균 저장 배열에 평균 저장시키기
a[i].first = sum / 5;
// 학생 번호 입력 받기
scanf("%d", &a[i].second);
}
// 내림차순으로 정렬하기
sort(a, a + n, cmp);
// 평균 순서대로 학생 번호 출력 하기
for (int i = 0; i < n; i++)
{
printf("%d\n", a[i].second);
}
}