ν”„μ—” 곡뢀/🫧 μ•Œκ³ λ¦¬μ¦˜ 곡뢀

[λ°±μ€€/Node.js] 4344번 평균은 λ„˜κ² μ§€ || 풀이 JavaScript

λ˜μžπŸ‹ 2023. 4. 5. 11:00
728x90

 

<λ§žμ•˜μŠ΅λ‹ˆλ‹€>

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);
}

μ²˜μŒμ—” ν•¨μˆ˜λ‘œ λ§Œλ“€μ–΄μ„œ μ œμΆœν–ˆλŠ”λ°, 계속 ν‹€λ ΈμŠ΅λ‹ˆλ‹€κ°€ λ‚˜μ™”λ‹€. μ™œμΈμ§€ λͺ» μ•Œμ•„λƒˆλ‹€γ… 

728x90
λ°˜μ‘ν˜•