\(@^0^@)/

[JS] 백준 15552번 빠른 A+B 본문

알고리즘

[JS] 백준 15552번 빠른 A+B

minjuuu 2021. 9. 17. 00:48
728x90

🐱‍👓 1. 문제 : 15552

https://www.acmicpc.net/problem/15552


🔥 2.1 시간 초과에 걸린 코드

const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(file).toString().split('\n');

for (let i = 1; i <= input[0]; i++){
  let numbers = input[i].split(' ');
  console.log(Number(numbers[0]) + Number(numbers[1]));
}

🔥 2.2 수정을 거쳐, 통과된 코드

const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(file).toString().split('\n');

let result = '';
for (let i = 1; i <= input[0]; i++){
  let numbers = input[i].split(' ');
  result += Number(numbers[0]) + Number(numbers[1]) + '\n';
}
console.log(result);

3. 풀이

15552번 문제를 보면, for문 문제를 풀 때의 주의점을 알려주는데,
입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간 초과가 날 수 있다는 것임.
그래서 나도 시간초과의 늪에 빠져버렸다...

결론은 매 번 console.log로 출력하면 시간 초과에 걸리고 하나의 문자열에 결괏값과 개행 문자를 저장한 후, 출력해야 함


※ 참고 : https://www.acmicpc.net/board/view/22716

※ 참고 : https://www.acmicpc.net/blog/view/55

728x90