✨JSY
Published 2023. 8. 30. 20:35
백준 15552 javascript | node.js PS/백준
문제

문제 출처 - https://www.acmicpc.net/problem/15552

 

15552번: 빠른 A+B

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.

www.acmicpc.net

본격적으로 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
profile

✨JSY

@JUNSANG YOO

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!