개발자 첫걸음/백준

백준 [BOJ 4345] 평균은 넘겠지

프로아마추어 2022. 9. 30. 13:23

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

 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net

 

 

순서도

1. 점수 배열의 평균 구하기 

2. 평균을 넘는 점수 개수 파악

3. 백분율 구하기 ((평균을 넘는 점수 개수 / 점수 배열 길이 수) * 100)

 

 

나의 코드

const input = require("fs")
  .readFileSync(0)
  .toString()
  .trim()
  .split("\n");

let arrNum = new Array();

// 평균을 넘는 점수 개수 반환
const calcNumrOverAvg = (scores) => {
  const average = scores.reduce((acc, score) => acc + score, 0) / scores.length;
  const overAverage = scores.filter((score) => score > average);

  return overAverage.length;
};

for (let i = 1; i < input.length; i++) {
  let result = 0;
  let sum = 0;
  arrNum.length = 0;

  arrNum = input[i].split(" ").map((n) => {
    return parseInt(n, 10);
  });

  arrNum.shift();

  // 소수점 셋째자리까지 표현
  console.log(
    `${((calcNumrOverAvg(arrNum) / arrNum.length) * 100).toFixed(3)}%`
  );
}