whatisthis?
๋ฐฑ์ค 4344 javascript (node.js) ํ์ด ๋ณธ๋ฌธ
1์ฐจ์ ๋ฐฐ์ด - (7)
๐ก๋ฌธ์
๋ํ์ ์๋ด๊ธฐ๋ค์ 90%๋ ์์ ์ด ๋ฐ์์ ํ๊ท ์ ๋๋๋ค๊ณ ์๊ฐํ๋ค. ๋น์ ์ ๊ทธ๋ค์๊ฒ ์ฌํ ์ง์ค์ ์๋ ค์ค์ผ ํ๋ค.
๐์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ C๊ฐ ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ํ์์ ์ N(1 ≤ N ≤ 1000, N์ ์ ์)์ด ์ฒซ ์๋ก ์ฃผ์ด์ง๊ณ , ์ด์ด์ N๋ช ์ ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ ์๋ 0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค.
๐์ถ๋ ฅ
๊ฐ ์ผ์ด์ค๋ง๋ค ํ ์ค์ฉ ํ๊ท ์ ๋๋ ํ์๋ค์ ๋น์จ์ ๋ฐ์ฌ๋ฆผํ์ฌ ์์์ ์ ์งธ ์๋ฆฌ๊น์ง ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ
5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91
์์ ์ถ๋ ฅ
40.000%
57.143%
33.333%
66.667%
55.556%
< ์ฝ๋ >
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let T = Number(input[0]);
for (let i = 1; i <= T; i++) {
let cases = input[i].split(' ');
let scoreCount = Number(cases[0]);
let sum = 0; // ์ผ์ด์ค๋ง๋ค ์นด์ดํธ ์ด๊ธฐํ
for (let j = 1; j <= scoreCount; j++) {
sum += Number(cases[j]);
}
let avg = sum / scoreCount;
let student = 0;
for (let k = 1; k <= scoreCount; k++) {
if (cases[k] > avg) {
student++;
}
}
result = (student / scoreCount * 100).toFixed(3); // ์์์ ์ธ์๋ฆฌ ๊ณ ์
console.log(result + '%');
}
<KEY POINT>
- input[0]์ ์ ์ฒด ์ผ์ด์ค์ ๊ฐ์ T๋ก ์ง์
- i=1๋ถํฐ i=T๊น์ง input[i] ๋ก for loop (i=0, ์ฆ input[0]๋ T์ด๋ฏ๋ก 1๋ถํฐ ์คํ)
- ํ๊ท ์ ๊ตฌํ๊ธฐ ์ํด ํฉ(sum) ๋จผ์ ๊ตฌํจ.
- avg = sum / ๊ฐฏ์
- student ๋ณ์๋ก ํ๊ท ์ ๋์ผ๋ฉด countํด์ค.
- ๊ฒฐ๊ณผ = ํ๊ท ๋์ํ์์ / ํ์์(=์ ์ ๊ฐฏ์) * 100
- ์์์ ๊ณ ์ ์ ์ํด toFixed(3) ํด์ค
+) ํ๊ท ์ ๊ตฌํ๋ ค๋ฉด ? - ํฉ๊ณ๋ฅผ ๊ตฌํด์ผํจ.
for๋ฌธ์ ์ฐ๊ธด ํ๋๋ฐ ์ง๋๋ฒ์ฒ๋ผ forEach(x => {sum += Number(x)} ) ์ด๋ ๊ฒ ๋ํด๋ ๋จ.
๋จ ์ฌ๊ธฐ์๋ , cases[0]์ ์ ์ ๊ฐ์์ด๋ฏ๋ก ๋นผ์ผํจ. ๊ท์ฐฎ๋ค. ๊ทธ๋ฅ ์์๋๋ก ํ์! (๋ญ์ง?)
ํ ์ ์๋ ๊ฒฝ์ฐ์์๋ฅผ ์ฌ๋ฌ๊ฐ ์๊ฐํด๋์ ใ ก ์ด๊ฑฐ๋ค.
โ ํ๋ ธ๋ ์ฝ๋ โ
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let T = input[0] *1 ;
let count = 0;
let percent = 0;
for(let i=1; i<=T; i++) {
let scoreArr = input[i].split(' ').map(x => Number(x));
let sum = 0;
let student = scoreArr[0];
for(let j=1; j<=student; j++) {
sum += scoreArr[j];
}
let avg = sum / student;
for(let k=1; k<=student; k++) {
if(scoreArr[k] > avg) {
count++;
}
}
percent = ((count / student) * 100).toFixed(3);
console.log(percent + '%');
}
'ALGORITHM > BOJ (Node.js)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1065๋ฒ - ํ์ (node.js) (0) | 2022.07.07 |
---|---|
โโ๋ฐฑ์ค 4673 javascript (node.js) ํ์ด (0) | 2022.01.10 |
โโ๋ฐฑ์ค 8958 javascript (node.js) ํ์ด (0) | 2022.01.04 |
๐บ๋ฐฑ์ค 1546 javascript (node.js) ํ์ด + ์คํ์ค๐งช (0) | 2022.01.04 |
โ๋ฐฑ์ค 3052 javascript (node.js) ํ์ด (0) | 2022.01.04 |