whatisthis?

[백준] 11720번 - 숫자의 합 (node.js) 본문

ALGORITHM/BOJ (Node.js)

[백준] 11720번 - 숫자의 합 (node.js)

thisisyjin 2022. 7. 7. 14:58

JavaScript

  • 문자열 (2)

문제

N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

출력

입력으로 주어진 숫자 N개의 합을 출력한다.

예제

입력

1
1

출력

1

입력

5
54321

출력

15

내 코드

let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');

let T = Number(input[0]);
let number = input[1].split('').map(x => Number(x));
let sum = 0;

for(let i=0; i<T; i++) {
   sum += number[i];
}

console.log(sum);

map메서드로 각 배열의 요소를 숫자로 변환한 후, for문을 통해 sum을 구한다.

실행 결과

128ms / 9592KB


다른 방법

const input = require('fs').readFileSync('/dev/stdin').toString().split('\n');

const T = Number(input[0]);
const number = input[1].split('');
const sum = number.reduce((pre, cur) => Number(pre) + Number(cur));

console.log(sum);

(놀랍게도!) 가장 성능이 좋은 것은 for loop를 돌리는 것이였다.
-> for...of를 사용한 코드가 가장 성능이 좋았다. 물론 큰 차이는 없었다.