본문 바로가기

PS

[ 백준 / C++ ] 18110 : solved.ac

[ 문제 ]

 

18110번: solved.ac (acmicpc.net)

 

[ 접근방법 ]

 

round 함수를 이용하면 소수점 반올림을 계산할 수 있다.

 

[ 소스코드 ]

 

#include <iostream>
#include <cmath>
#include <algorithm>

using namespace std;

int n, arr[300010], idx, sum, ans;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> n;

    for(int i = 0; i < n; i++)cin >> arr[i];
    sort(arr, arr + n);

    idx = (int)round((double)n * 15 / 100);
    for(int i = idx; i < n - idx; i++)sum += arr[i];

    ans = (int)round((double)sum / (n - 2 * idx));
    if(!n) ans = 0;
    cout << ans;

    return 0;
}