우선 정답코드는 아래와 같다.
const fs=require('fs');
const filepath=process.platform==='linux'?'dev/stdin':'./input.txt';
let input=fs.readFileSync(filepath).toString().split("\n");
let T=input[0]*1;
for (let i=1;i<=T;++i){
let arr=input[i].split(" ").map(item=>item*1)
let length=arr.shift();
console.log("function call")
solution(length, arr);
}
function solution(length, arr){
let count=0;
let sum=arr.reduce((acc, ele)=>acc+=ele, 0);
let avg=sum/length;
for(let j=0;j<length;++j){
if(arr[j]>avg){
++count;
}
}
console.log((count/length*100).toFixed(3)+"%");
}
-코드를 보면 알수 있지만 문자열을 정수형 자료형으로 바꾸기 위해서 '+' 가아닌 *1 을 해주고 있다.
Array.prototype.shift() 에 대하여
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/shift
shift() 메서드는 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환합니다. 이 메서드는 배열의 길이를 변하게 합니다.
Array.prototype.reduce()에 대하여
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서 (reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.
'FrontEnd > PS through Javascript' 카테고리의 다른 글
백준(BOJ) 1463: 1로 만들기 (1) | 2024.02.03 |
---|---|
백준(BOJ) 2798: 블랙잭 (1) | 2024.02.01 |
백준(BOJ) 2920: 음계 (0) | 2024.01.22 |
자바스크립트에서 값 입력받기 (0) | 2024.01.22 |
기초문법 with Algorithm (ing) (0) | 2024.01.20 |