미누에요
[백준 18110번] solved.ac 본문
728x90
반응형
SMALL
이 문제는 데이터의 개수와 데이터를 순차적으로 받아 절사평균을 구하는 문제이다.
절사 평균이란, 상위 및 하위에서 특정 범위를 제거한 후에 측정한 평균이다.
예를 들어, 30% 절삭평균은 상위 하위 각각 15%를 삭제하고 남은 데이터를 가지고 평균을 구한 값이다.
처음에는 data에 각각 15%의 개수만큼 pop()과 shift()를 수행했지만, 문제에서 오답이라고 판단하여 slice를 사용하여 배열을 부분적으로 잘라내 사용하였다.
소스 코드
const input = require('fs')
.readFileSync('/dev/stdin')
.toString()
.trim()
.split('\n');
const n = Number(input[0]);
if (n === 0) {
console.log(0);
return;
}
let data = input
.slice(1)
.map(Number)
.sort((a, b) => a - b);
const exclude = Math.round(n * 0.15);
data = data.slice(exclude, n - exclude);
const sum = data.reduce((acc, val) => acc + val, 0);
const average = Math.round(sum / data.length);
console.log(average);
728x90
반응형
LIST
'알고리즘' 카테고리의 다른 글
[백준 2108번] 통계학 - JavaScript (0) | 2025.02.05 |
---|---|
[백준 1929번] 소수 구하기 - JavaScript (0) | 2025.02.04 |
[백준 11866번] 요세푸스 문제 0 (1) | 2025.02.02 |
[백준 10845번] 큐 - JavaScript (1) | 2025.02.01 |
[백준 10826번] 스택 - JavaScript (1) | 2025.01.31 |