const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let n, k;
let grades = [];
rl.question('', (input1) => {
[n, k] = input1.split(' ').map(Number);
rl.question('', (input2) => {
grades = input2.split(' ').map(Number);
// for (let i = 0; i < k; i++) {
// rl.on("line", function(line){
// const [start, end] = line.split(' ').map(Number);
// printAVG(Number(start), Number(end));
// rl.close();
// })
// }
let rangeCount = 0;
rl.on('line', (rangeInput) => {
const [start, end] = rangeInput.split(' ').map(Number);
printAVG(Number(start), Number(end));
rangeCount++;
if (rangeCount === k) {
rl.close();
}
});
});
});
function printAVG (start, end) {
let ret = 0;
for(let i = start-1; i < end ;i++){
ret += Number(grades[i]);
}
ret = ret / (end - start + 1) * 100;
ret = Math.round(ret)/100;
const roundedValue = ret.toFixed(2);
console.log(roundedValue)
}
*for을 사용하면 1번 밖에 실행 안됨.
rl.question은 비동기 함수이기 때문에, 반복문에서 사용될 때 문제가 발생할 수 있다. 반복문이 순회하면서 여러 개의 rl.question이 동시에 실행되기 때문에, 마지막 rl.close()가 바로 실행돼서 프로그램이 종료되기 전에 입력이 완료되지 않은 상태일 수 있다.
'study > 알고리즘 문제 풀이' 카테고리의 다른 글
[javaScript] Softeer - [21년 재직자 대회 예선] 좌석 관리 (0) | 2024.01.30 |
---|---|
[javaScript] Softter - 징검다리 (0) | 2024.01.11 |
정렬 알고리즘(Quick Sort, Merge Sort) (0) | 2023.11.15 |
[javaScript] 프로그래머스 - H-Index (0) | 2023.10.27 |
[javaScript] 프로그래머스 - K번째수 (0) | 2023.10.27 |