Coding Test/JS

백준 4344

dohem 2023. 10. 9. 20:56

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

 

4344번: 평균은 넘겠지

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 정답과 출력값의 절대/상대 오차는 10-3이하이면 정답이다.

www.acmicpc.net

 

풀이

let fs = require('fs')
let input = fs.readFileSync('/dev/stdin').toString().split('\n')

let N = Number(input[0])
for (i=1; i<=N ; i++){
    let data = input[i].split(' ').map(Number)
    let n = data[0]
    let arr = data.slice(1)
    let avg = arr.reduce((a,b)=>a+b) / n
    
    let cnt = 0
    
    for (j=0; j<arr.length ; j++){
        if (arr[j]>avg){cnt+=1}
    }
    console.log((cnt/n * 100).toFixed(3) + '%')
}

참고

1. 소수점 N번째까지 출력 => .toFixed(N)

2. 특정 배열에서 특정 인덱스부터 슬라이싱. => array.slice(시작idx,끝idx)  * 끝idx 생략하면 끝까지 자름.