[백준] 18110 - solved.ac (C++)

youznn·2023년 12월 27일
0

백준

목록 보기
12/13

코드

#include <iostream>
#include <string.h>
#include <vector>
#include <list>
#include <cmath>
#include <numeric>
#include <algorithm>

using namespace std;

int main(void) {
	int n;
	int cut;
	cin >> n;
	if (n == 0) {
		cout << 0;
		return 0;
	}

	vector<int> nums;

	for (int i = 0; i < n; i++) {		
		int num;
		cin >> num;
		nums.push_back(num);
	}

	sort(nums.begin(), nums.end());
	cut = round(n * 0.15);

	double sum = accumulate(nums.begin()+cut, nums.end()-cut, 0);

	double level = round(sum / (n - cut*2));
	cout << level;

	return 0;
}

풀이 및 생각

아이디어 자체는 어렵지 않았다. 파이썬으로만 하다가 c++은 처음 써 봐서 꽤나 헤멨다. 헷갈렸던 부분은, sum을 계산할 때 int로 하면 int/int가 되어 버려서 나눗셈의 결과값 또한 정수가 된다는 것이다. 그래서 double 자료형으로 sum을 지정해 주었다.
round는 cmath 헤더에, sort는 algoritm 헤더에 있다. 나머지는 적절히 필요한 데 쓰기

profile
https://github.com/youznn

0개의 댓글