알고리즘/JavaScript(node.js)

[백준/Node.js] 11720번: 숫자의 합

dev-power 2025. 12. 21. 14:18

문제 URL: https://www.acmicpc.net/problem/11720

 

숫자들을 한 자리씩 쪼개서 다 더하는 문제입니다.

 

입력 처리

const input = require('fs').readFileSync('/dev/stdin').toString()
const lines = input.split('\n')
const nums = lines[1].split('')
  • lines[0]에는 숫자 개수 n이 있지만, 사실 안 써도 됩니다.
  • lines[1]이 실제 숫자 문자열 (ex: "12345")
  • split('')으로 한 글자씩 쪼개면 ['1', '2', '3', '4', '5'] 이런 배열이 됩니다.

 

숫자 더하기 - 두 가지 방법

방법 1: forEach

let sum = 0
nums.forEach(char => {
    sum += Number(char)
})
console.log(sum)

전통적인 방식입니다. sum 변수를 하나 만들어두고, 배열을 돌면서 하나씩 더해나갑니다. 직관적이라 초보자가 이해하기 쉽죠.

 

방법 2: reduce 사용(추천)

const result = nums.reduce((sum, char) => sum + Number(char), 0)
console.log(result)

reduce는 "배열의 모든 값을 하나로 합치는" 작업에 특화된 메서드입니다. forEach보다 코드가 짧고, sum 변수를 따로 선언할 필요도 없어서 깔끔합니다.

  • 첫 번째 인자 (sum, char) => ...: 누적값(sum)과 현재값(char)을 받아서 처리
  • 두 번째 인자 0: 시작값. 여기서는 0부터 더하기 시작

 


전체 풀이

const input = require('fs').readFileSync('/dev/stdin').toString()
const lines = input.split('\n')
const nums = lines[1].split('')

const result = nums.reduce((sum, char) => sum + Number(char), 0)
console.log(result)