
절사평균에 대해 이해한다면 쉽게 풀 수 있는 문제입니다.
#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>
int main()
{
int cnt;
std::cin >> cnt;
if (cnt == 0)
{
std::cout << 0;
return 0;
}
std::vector<int> nums;
for (int i = 0; i < cnt; i++)
{
int tmp;
std::cin >> tmp;
nums.push_back(tmp);
}
std::sort(nums.begin(), nums.end(), [](const int a, const int b) {return a < b; });
int cut = std::floor(cnt * 0.15f + 0.5f);
float aver = 0;
for (int i = cut; i < cnt - cut; i++)
aver += nums[i];
aver /= cnt - cut * 2;
std::cout << std::floor(aver + 0.5f);
return 0;
}