https://www.acmicpc.net/problem/18110
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
// (0 ≤ n ≤ 3 × 10^5)
int n;
// 모든 난이도 의견은 1 이상 30 이하이다.
int res = 0;
// 첫 번째 줄에 난이도 의견의 개수 n이 주어진다.
cin >> n;
// 아직 아무 의견이 없다면 문제의 난이도는 0으로 결정한다.
if (n == 0)
{
cout << res;
return 0;
}
vector<int> numbers(n);
// 이후 두 번째 줄부터 1 + n번째 줄까지
// 사용자들이 제출한 난이도 의견 n개가 한 줄에 하나씩 주어진다.
for (int i = 0; i < n; i++) {
cin >> numbers[i];
}
// 난이도 정렬
sort(numbers.begin(), numbers.end());
// 의견이 하나 이상 있다면,
// 문제의 난이도는 모든 사람의 난이도 의견의 30% 절사평균으로 결정한다.
// 30% 절사평균의 경우 위에서 15%,
// 아래에서 15%를 각각 제외하고 평균을 계산한다.
// 제외되는 사람의 수는 위, 아래에서 각각 반올림한다.
int idx = round(n * 0.15);
double sum = 0;
// 절사평균으로 제외하고 난 뒤 의견들 총합 계산
for (int i = idx; i < n - idx; i++) {
sum += numbers[i];
}
// 계산된 평균도 정수로 반올림된다.
res = round(sum / (n - idx * 2));
// solved.ac가 계산한 문제의 난이도를 출력한다.
cout << res;
return 0;
}
https://uigwonblog.tistory.com/28
'알고리즘 > solved.ac CLASS 2' 카테고리의 다른 글
2108번: 통계학 (0) | 2024.06.26 |
---|---|
11651번: 좌표 정렬하기 2 (0) | 2024.06.18 |
1676번: 팩토리얼 0의 개수 (0) | 2024.06.16 |
28702번: FizzBuzz (1) | 2024.06.16 |
30802번: 웰컴 키트 (1) | 2024.06.14 |