[JS] 백준 15552 빠른 A+B

n-u·2022년 6월 20일
0

Algorithm

목록 보기
9/33
post-thumbnail

백준 15552 빠른 A+B

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

제출한 풀이 1 (시간초과)

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

for(let i = 1; i <= T; i++){
    let arr = input[i].split(' ').map(i => +i);
    console.log(arr[0] + arr[1]);
}

계산을 하나씩 끝내고 console에 출력하는 코드를 제출했을때 계속해서 시간초과로 오답이 나왔다.

  • console 출력을 5번 하는 방식

제출한 풀이 2(정답)

const fs = require('fs');
let file = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(file).toString().split('\r\n');
let T = Number(input[0]);
let result = '';

for(let i = 1; i <= T; i++){
    let arr = input[i].split(' ').map(i => +i);
    result += (arr[0] + arr[1] +'\n');
}
console.log(result);
  • 출력될 값을 저장할 변수를 미리 지정한다.
  • 변수에 값들을 다 저장하도록 +=연산자를 이용하면서 구분이 \n을 이용해 한번 값이 더해질때마다 줄바꿈을 해주어 console에 딱 한번만 출력하도록 한다.
  • 이 방법으로 하니 시간초과 현상이 일어나지 않고 정답으로 처리 되었다.

풀면서 알게 된 것

  • 데이터 값을 변수에 저장한 후 한번만 출력하게 되면 시간을 단축할 수 있다.
  • result의 초기값을 넣지 않으면 undefined값을 갖게 됨으로 초기값을 할당해줘야 한다.
reference

https://gurtn.tistory.com/37

profile
기록하며 발전하는 삶

0개의 댓글