N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
입력으로 주어진 숫자 N개의 합을 출력한다.
자바스크립트 arr 함수들을 중 reduce를 사용하면 인자로 받는 값들을 누적합해주고, 콤마 뒤의 값을 시작값으로 해서 쉽게 풀이를 할 수 있는 기본 문제였다.
입력값으로 받은 string도 결국 iterable이므로 (char들의 array같은 느낌) 그래서 spread연산자로 깊은복사굳이해줘야할 필요 있나?해서 map으로 number타입으로 변경해줌.
복습 겸 arr 내장함수들 좀 정리해봐야겠다.
{
const error_msg = () =>{console.log("입력값이 부적절합니다.")}
const N:string|null = prompt("1보다 크거나 같고 100보다 작거나 같은 값을 입력해주세요.");
const nums:string|null = prompt(`${N}개의 숫자를 공백없이 입력해주세요.`);
if(N){
let n: number = typeof parseInt(N)==="number"? parseInt(N):-1;
let num_arr: Array<number>|null = nums? [...nums].map((v)=>parseInt(v)):null;
if(n && num_arr){
console.log(num_arr.reduce((prv,nxt)=>prv+nxt,0));
}else{
error_msg();
}
}else{
error_msg();
}
}
/*
test1
input
1
1
output
1
----
test2
input
5
54321
output
15
----
test3
input
25
7000000000000000000000000
output
7
----
test4
input
11
10987654321
output
46
*/