<๋ง์์ต๋๋ค>
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
const test = +input[0];
for (let i = 1; i <= test; i++) {
let sub = input[i].split(" ").map(v => Number(v));
let student = sub.shift();
let ever = sub.reduce((sum, v) => sum + v, 0) / student;
let overEver = sub.filter(v => v > ever);
let percent = ((overEver.length / student )* 100).toFixed(3);
console.log(percent + '%');
}
test ํ ์คํธ ์๋ฅผ ๋ฐ์์์ for ๋ฌธ์ผ๋ก ๊ฐ์ ๋์ถํ๋ค.
๊ณผ๋ชฉ๊ณผ ํ์ ์๊ฐ ํฌํจ๋ ๋ฐฐ์ด์ sub ๋ก ๋ฐ์์จ ํ, shift() ํจ์๋ฅผ ํตํด ํ์ ์๋ง student๋ก ๋ผ์ด์ค๋ค.
shift() ํจ์๋ ๋ผ์ด๋ธ ๋งจ ์ ๊ฐ์ return ํ๋ค.
์ ์๋ง ๋จ์ sub ๋ฐฐ์ด์ reduce ํจ์๋ฅผ ํตํด ๋ค ๋ํด์ค ๋ค, ํ์์๋ก ๋๋ ํ๊ท ์ ๊ตฌํด์ค๋ค.
ํ๊ท ๋ณด๋ค ํฐ ์ ์๋ค๋ง overEver ์ ๋ฃ์ด์ค๋ค.
overEver์ ๊ธธ์ด (=ํ๊ท ๋ณด๋ค ํฐ ์ ์๋ค ๊ฐ์) ๋ฅผ ํ์ ์๋ก ๋๋ ์ค ํ 100 ์ ๊ณฑํ๋ฉด ๋น์จ์ด ๋์ค๋๋ฐ,
์์์ ์ธ์๋ฆฌ๊น์ง ์ถ๋ ฅํด์ผํ๋ toFixed() ๋ก ์์์ ์ ๊ณ ์ ํด์ฃผ๊ณ '%' ๋ฅผ ๋ถ์ฌ์ค๋ค.
<ํ๋ ธ์ต๋๋ค>
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\r");
const test = input[0]; //5
const everFn = (sub) => {
let student = sub.shift();
let ever = sub.reduce((sum, v) => sum + v) / student;
let overEver = sub.filter(v => v > ever);
let percent = (overEver.length / student * 100).toFixed(3);
console.log(percent + '%');
}
for (let i = 1; i <= test; i++) {
let sub = input[i].split(" ").map(v => Number(v));
everFn(sub);
}
์ฒ์์ ํจ์๋ก ๋ง๋ค์ด์ ์ ์ถํ๋๋ฐ, ๊ณ์ ํ๋ ธ์ต๋๋ค๊ฐ ๋์๋ค. ์์ธ์ง ๋ชป ์์๋๋คใ