Algorithm & 자료구조/알고리즘 w.JavaScript

[알고리즘] 백준 4344번: 평균은 넘겠지 W_node.js

프라이D 2022. 4. 28. 22:20

문제

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

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

-

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

풀이

const readFileSyncAddress = '/dev/stdin';

const fs = require('fs');
let [C, ...testCases] = fs
  .readFileSync(readFileSyncAddress)
  .toString()
  .trim()
  .replaceAll(/\r/g, '')
  .split(/\n/g);

for (let i = 0; i < C; i++) {
  testCases[i] = testCases[i].split(/\s/g).map(Number);
}

//답안 작성
let N, sum, avg;
let cnt = 0;

for (let i = 0; i < C; i++) {
  // 각 testCases 의 갯수 N 정의
  N = testCases[i].shift();

  // 각 testCases 의 평균
  sum = testCases[i].reduce((a, c) => a + c, 0);
  avg = sum / N;

  // 각 testCases에서 평균을 넘는 학생의 수
  cnt = 0;
  for (let j = 0; j < N; j++) {
    if (testCases[i][j] > avg) cnt++;
  }

  // 백분율 구하기
  console.log(`${((cnt / N) * 100).toFixed(3)}%`);
}