[백준 15552번 빠른 A+B]

초록귤·2022년 4월 3일
0

JS코테

목록 보기
1/9
post-thumbnail

통과한 코드

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");

참고한 글 - readline 버전

궁금해서 돌려봤다 하핳.. 🥺
예상과 다르게 내가 쓴 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();
})

참고 코드 - fileSync 버전

테스트케이스를 항상 변수로 저장해주는 방식으로 이용했는데, 이 코드처럼 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가 조오금 더 우수함을 알 수 있었다.

profile
초록색 귤이 노랑색으로 익어가듯, 실력이 익어가기 위해 노력하는 개발자 lahee입니다. 프론트엔드 개발자를 목표로 성장하고 있습니다.

0개의 댓글