문제
N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
출력
입력으로 주어진 숫자 N개의 합을 출력한다.
| 예제입력 | 예제출력 |
| 1 1 |
1 |
| 5 54321 |
15 |
| 25 7000000000000000000000000 |
7 |
| 11 10987654321 |
46 |
⭕ 풀이
const input=require('fs').readFileSync('/dev/stdin').toString().split('\n');
const N=Number(input[0]);
const num=input[1].split('');
let sum=0;
for(let i=0;i<N;i++){
sum += Number(num[i]);
}
console.log(sum);
const input=require('fs').readFileSync('/dev/stdin').toString().split('\n');
const N=Number(input[0]);
let arr = input[1].split('').map(x => Number(x));
let answer = arr.reduce(function(acc,v){
return acc + v});
console.log(answer)
첫풀이는 너무 간단해보여서 전에배웠던
map과 reduce를 사용해서 풀어봤다.
let arr로 input[1]을 ''로 나눈걸 다시 배열로 생성하고
그렇게 만든 arr를 reduce(function(acc,v){
return acc + v });
를 통해서 arr배열의 누적합을 계산하게 만들었다.
✅ 다른분의 풀이
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const [number, stringArray] = input; ❗
const arr = stringArray.split('').map(Number); ❗
let res = 0;
for (let i = 0; i < number; i++) {
res += arr[i];
}
console.log(res);
[number, stringArray] = input;
이 선언방식이 신기해서 가져왔다.
const input=['5',
'54321']
const [number, stringArray] = input;
const arr = stringArray.split('').map(Number);
console.log(number) // 5
console.log(stringArray) // 54321
console.log(arr) // [ 5, 4, 3, 2, 1 ]
이런식으로 인식한다.
-출처
https://www.acmicpc.net/problem/11720
map
https://record-note.tistory.com/34
reduce
https://record-note.tistory.com/41
'Algorithm > Baekjoon(Node.js)' 카테고리의 다른 글
| [JavaSrcipt] Baekjoon - 2675 : 문자열 반복 (0) | 2021.09.12 |
|---|---|
| [JavaSrcipt] Baekjoon - 10809 : 알파벳 찾기 (indexOf) (0) | 2021.09.11 |
| [JavaSrcipt] charCodeAt,fromCharCode (0) | 2021.09.09 |
| [JavaSrcipt] Baekjoon - 11654 : 아스키 코드 (0) | 2021.09.09 |
| [JavaSrcipt] Baekjoon - 1065 : 한수 (1) | 2021.09.08 |