https://www.acmicpc.net/problem/18110
제목 : solved.ac
난이도 : Silver IV
사람들의 난이도 의견이 하나라도 있으면 30%의 절사평균을 낸다고 한다.
아래 순서대로 작성했다.
- n이 주어지면 n의 15%를 구하고 반올림 한다.
- 주어지는 난이도 평가를 오름차순으로 정렬한다.
- 반올림한 하위, 상위 15%를 제외한 모든 점수의 평균을 낸다.
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
if (n == 0) cout << 0;
else {
vector<int> rate(n, 0);
for (int i = 0; i < n; i++) {
cin >> rate[i];
}
sort(rate.begin(), rate.end());
int t = round((double)n / 100 * 15), divnum = n - (t * 2), sum = 0;
for (int i = t; i < n - t; i++) {
sum += rate[i];
}
cout << round((double)sum / divnum);
}
}