문제 자체는 어렵지 않지만 아직도 자바스크립트가 어렵다...
파일 입출력 때문에 런타임에러가 도대체 얼마나 났는지 모르겠음;
const fs = require("fs");
//let inputArr = fs.readFileSync(__dirname + '/input.txt').toString(); VSCode용 input 받기
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let inputArr = fs.readFileSync(filePath).toString();
// console.log("inputArr", inputArr);
inputArr = inputArr.split("\n");
let caseCount = parseInt(inputArr[0]);
// console.log("caseCount", caseCount);
for(let i = 1; i < caseCount + 1; i++) {
let stdCount = parseInt(inputArr[i].split(" ")[0]);
let stdScore = 0;
let sum = 0;
let stdAllScore = [];
let avgUpStdCount = 0;
for(let j = 1; j < stdCount + 1; j++) {
stdScore = parseInt(inputArr[i].split(" ")[j]);
sum += stdScore;
stdAllScore.push(stdScore);
}
let avg = parseFloat(sum) / stdCount;
stdAllScore.forEach(function(sc) {
if(avg < sc) {
avgUpStdCount++;
}
});
console.log(`${((avgUpStdCount / stdCount) * 100).toFixed(3)}%`);
}
문제를 풀다가 다른 언어에서 사용하던 Math.round()와 *, /를 이용한 방법이 잘 안되어서 검색해보았더니
.toFiexed() 를 발견하여 그걸 사용해 보기로 했음
let numObj = 1.23456
console.log(numObj.toFixed()); // 결과: '1'
console.log(numObj.toFixed(6)); // 결과: '1.234560'
console.log(numObj.toFixed(3)); // 결과: '1.235'
console.log(numObj.toFixed(1)); // 결과: '1.2'
numObj = 0.0005678
console.log(numObj.toFixed()); // 결과: '0'
console.log(numObj.toFixed(5)); // 결과: '0.00057'
console.log(numObj.toFixed(3)); // 결과: '0.001'
console.log(numObj.toFixed(1)); // 결과: '0.0'
toFixed() 안에 들어가는 인자를 반올림해줄 인덱스를 넣어주고 그 인덱스에서 반올림하고 나머지 소수점이 출력된다.
'자료구조 알고리즘 > 코딩테스트 풀이' 카테고리의 다른 글
프로그래머스 Lv0 최댓값 만들기(2) (0) | 2023.02.19 |
---|---|
프로그래머스 Lv0 직각삼각형 출력하기 (0) | 2023.02.19 |
백준 5597번 과제 안 내신 분? (0) | 2023.02.16 |
백준 2884 자바스크립트(node js) (0) | 2023.02.02 |
백준 1330번 문제, node.js로 제출하기... (0) | 2023.01.31 |