[JS] 15552 빠른 A+B

    2022.08.22

    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

    15552 빠른 A+B

    문제

    • 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다.
    • 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.
    • 각 테스트케이스마다 A+B를 한 줄에 하나씩 순서대로 출력한다.

    풀이

    const fs = require('fs');
    const inputData = fs.readFileSync(0,'utf8').toString().split('\n')
    // const inputData = ['5','1 1','12 34','5 500','40 60','1000 1000'];
    
    let caseN = parseInt(inputData[0]);
    let result = ''; // 빈 문자열을 줌
    
    for(let i = 1 ; i < caseN +1 ; i++){
        let numbers = inputData[i].split(' ');
        result += parseInt(numbers[0])+parseInt(numbers[1])+'\n' // 하나의 결과값이 나오면 엔터값을 주고 그것을 누적한다.
        // 만약 ','으로 한다면 2,46,505,100,2000, 이 출력된다. 
    }
    console.log(result)
    • 10950번 A+B-3 풀듯이 푸니 시간 초과가 나왔습니다. 한 줄씩 출력하는 것 보다 한 번에 출력하는 것이 더 빠르다라는 것을 알게 되었습니다.

    추가

    • 주어진 값 다 더하기
    
    const inputData = ['5','1 1','12 34','5 500','40 60','1000 1000'];
    
    let caseN = parseInt(inputData[0]);
    let result = 0; // result값을 0이라 명시하고 for문을 통해 값이 누적되게 한다.
    
    for(let i = 1 ; i < caseN +1 ; i++){
        let numbers = inputData[i].split(' ');
        result += parseInt(numbers[0])+parseInt(numbers[1])
    
    }
    console.log(result) // 주어진 값이 다 더한 값이 나온다.

    'algorithm > 백준' 카테고리의 다른 글

    [JS] 11022번 A+N -8  (0) 2022.08.22
    [JS] 11021 A+B-7  (0) 2022.08.22
    [JS] 25304 영수증  (0) 2022.08.20
    [JS] 8393 합  (0) 2022.08.20
    [JS] 10950 A+B-3  (0) 2022.08.20

    댓글