문제
문제 출처 - https://www.acmicpc.net/problem/15552
본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다.
입력과 출력 스트림은 별개이므로, 테스트케이스를 전부 입력받아서 저장한 뒤 전부 출력할 필요는 없다. 테스트케이스를 하나 받은 뒤 하나 출력해도 된다.
풀이
console.log를 for문 안에 넣어 루프 한 번에 출력 한 번을 실행하면 시간 초과가 떴다.
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().split('\n');
const n = +input[0];
for (let i = 1; i <= n; i++) {
let [a, b] = input[i].split(' ').map((item) => +item);
console.log(a + b);
}
계산 결과와 개행 문자를 한꺼번에 output에 더하고
반복문 밖에서 한꺼번에 출력했더니 시간 초과가 뜨지 않았다.
코드
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().split('\n');
let output = '';
for (let i = 1; i <= +input[0]; i++) {
let [a, b] = input[i].split(' ').map((item) => +item);
output += a + b + "\n";
}
console.log(output);
'PS > 백준' 카테고리의 다른 글
백준 10810 javascript | node.js (0) | 2023.09.12 |
---|---|
백준 10807 javascript | node.js (0) | 2023.09.12 |
백준 14681 javascript | node.js (0) | 2023.08.27 |
백준 3009 javascript | node.js (0) | 2023.08.26 |
백준 11653 javascript | node.js (0) | 2023.08.25 |