Algorithm/BOJ

[C/C++] 백준 18110번 - solved.ac

poopooreum 2024. 4. 20. 17:18
반응형

✏️문제 링크

https://www.acmicpc.net/problem/18110

 

18110번: solved.ac

5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다.

www.acmicpc.net

 

✏️문제 설명

 

 

✏️문제 코드

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>

using namespace std;

int main() 
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int n;
	int res = 0;

	// 난이도 의견 개수 입력
	cin >> n;

	// 난이도 의견 개수가 0이면 0을 반환
	if (n == 0)
	{
		cout << res;
		return 0;
	}

	// 난이도 의견 입력
	vector<int> numbers(n);

	for (int i = 0; i < n; i++)
		cin >> numbers[i];

	// 난이도 정렬
	sort(numbers.begin(), numbers.end());

	// 절사평균으로 제외하는 의견 수 계산
	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));

	// 최종 답 반환
	cout << res;
}
반응형