문제 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)
'알고리즘 > JavaScript(node.js)' 카테고리의 다른 글
| [백준/Node.js] 2583번: 영역 구하기 (0) | 2026.01.06 |
|---|---|
| [백준/Node.js] 7568번: 덩치 (0) | 2026.01.05 |
| [백준/Node.js] 1676번: 팩토리얼 0의 개수 (0) | 2026.01.04 |
| [백준/Node.js] 11945번: 뜨거운 붕어빵 (0) | 2025.12.16 |
| [백준/Node.js] 2438번: 별 찍기 - 1 (0) | 2025.12.15 |