출처
문제
- 1차원배열_4344_평균은 넘겠지
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다.
점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
풀이
- resuce()함수를 이용해서 score에있는 값을 다 더해준다음 snum(각 줄 학생수)만큼 나눠 평균(avg)를 구한다.
- for문으로 score의 크기(각줄의 학생 수)만큼 반복해 if문으로 평균값(avg)보다 높으면 카운트 해 준다.
- 카운트된 수와 각줄의 학생수를 나눠 서 평균을 구한다음 소수점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 |