let input = require("fs").readFileSync("dev/stdin").toString().split("\n");
const testCase = Number(input[0]);
let result = "";
for (i = 1; i <= testCase; i++) {
let [a, b] = input[i].split(" ").map(Number);
result += a + b + `\n`;
}
console.log(result);
VSCode에서 예상한 출력값이 나오는지 확인하기 위해 추가한 목업데이터@@
// let input = `5
// 1 1
// 12 34
// 5 500
// 40 60
// 1000 1000`
// .toString()
// .split("\n");
궁금해서 돌려봤다 하핳.. 🥺
예상과 다르게 내가 쓴 readFileSync로 가져오는 것보다 readline이 메모리도, 시간도 적게 사용했다. 성능 차이가 작다는 것을 알게 되어, readline을 쓰는 법을 더 익혀봐야겠다 😉
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let answer = '';
rl.on('line', line => {
const input = line.split(' ');
if(input.length === 2) {
const A = parseInt(input[0]);
const B = parseInt(input[1]);
answer += A+B + '\n';
}
}).on('close', () => {
console.log(answer);
process.exit();
})
테스트케이스를 항상 변수로 저장해주는 방식으로 이용했는데, 이 코드처럼 for의 최대값으로 input[0]을 주면 코드가 더 깔끔한 것 같다.
또, 나는 map을 돌려 숫자로 만들어주었는데 딱히 할 필요가 없는 것을 알 수 있었다.
이 방법으로 사용했을 때 가장 적은 시간이 걸렸다.
let fs = require("fs")
let input = fs.readFileSync("dev/stdin").toString().split("\n")
let answer = ''
for(let i = 1; i <= input[0]; i++) {
tmp = input[i].split(' ')
answer += parseInt(tmp[0]) + parseInt(tmp[1]) + "\n"
}
console.log(answer)
메모리 상으로는 readline이 우수,
시간으로 봤을 때, fileSync가 조오금 더 우수함을 알 수 있었다.