[JS] 백준 4344번 평균은 넘겠지

출처

백준

문제

  • 1차원배열_4344_평균은 넘겠지
  1. 첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

  2. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다.

    점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

풀이

  1. resuce()함수를 이용해서 score에있는 값을 다 더해준다음 snum(각 줄 학생수)만큼 나눠 평균(avg)를 구한다.
  2. for문으로 score의 크기(각줄의 학생 수)만큼 반복해 if문으로 평균값(avg)보다 높으면 카운트 해 준다.
  3. 카운트된 수와 각줄의 학생수를 나눠 서 평균을 구한다음 소수점3번째 자리까지 구하기위해 toFixed(3); 이용한다.

코드

사용 메서드


const fs = require('fs');
let input = fs.readFileSync('BaekJoon/1차원 배열/4344_평균은 넘겠지/input.text').toString().split('\n');



//테스트 케이스 수
let testNum = +input[0];


//학생 수 , 점수 분리
for(let i = 1; i<=testNum; i++){

     let score = input[i].split(' ');  //
     let snum = score.shift()*1;//각 줄 학생 수
     let count = 0;
     score =  score.map(num=>+num);
    // console.log(score);

     //평균 구하기
     let avg  = score.reduce((acc,cv)=>{ return acc += cv; },0)  
     avg /= snum;
    // console.log(avg);

     //한 반에 몇 명이 평균 넘는지 카운트 하기
     for(let j = 0; j<score.length; j++){
        if(score[j]>avg){
            count++;
        }
     }

     //한 반에 평균을 넘는 비율 구하기
     let answer = ((count/snum)*100).toFixed(3);

     console.log(answer+'%');

}

'algorithm문제 풀이 > 백준' 카테고리의 다른 글

[JS] 백준 1712번 손익분기점  (0) 2022.10.10
[JS] 백준 4674번 셀프넘버  (0) 2022.10.02