본문 바로가기
알고리즘 Node.js

백준 11720문제. 숫자의 합

by 반갑조? 2025. 3. 16.

문제

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

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

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

예제 입력: 1  또는  5           또는 25                                                 또는 11

                  1           54321           7000000000000000000000000           10987654321

예제 출력: 1           15                  7                                                           46

 

풀이

const fs = require('fs');
const input = fs.readFileSync(0, 'utf-8').trim().split('\n');

const num = Number(input[0]);
const N = input[1].split('').map(Number);

let sum = 0; 

for(let i = 0; i<N.length; i++){
	sum += N[i];
}

console.log(sum);

 

풀이 해석

1. input[1]을 split('')을 사용하여 숫자 문자열을 하나씩 배열로 저장한다. map(Number)로 숫자로 변환한다.

2. 합계를 저장할 let변수 sum을 선언한다.

3. for반복문을 사용하여 N의 숫자배열의 인덱스 하나씩을 가져와서 더해준다.

4. 최종 합계를 출력한다.

 

더 알아보기

1. for반복문없이 더 간결한 코드 사용: reduce()

const fs = require('fs');
const input = fs.readFileSync(0, 'utf-8').trim().split('\n');

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

console.log(sum);

- reduce((acc,cur) => acc + cur, 0) 배열의 요소들을 모두 더한다.