BOJ 18110 C++
문제접근
입력받은 n * 0.15의 반올림 만큼 포문을 돌면서 큰수와 작은수를 정렬된 배열에서 차례대로 뺀다. 0일경우 0이나오게 예외 처리 한다.
코드
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int n; cin >> n;
if (n == 0)
{
cout << 0;
return 0;
}
int ex = round(double(n) * 0.15);
vector<int> v(n, 0);
int ans = 0;
for (int i = 0; i < n; i++)
{
cin >> v[i];
ans += v[i];
}
sort(v.begin(), v.end());
for (int i = 0; i < ex; i++)
ans -= (v[i] + v[n - i - 1]);
cout << round(double(ans) / double((n - ex * 2)));
return 0;
}
Leave a comment