강민이는 동생 희주를 위해 수학 문제를 만들고 있다. 희주는 매일 연습하고 열심히 공부했지만, 아직도 더하기를 끝내지 못했다.
숫자를 더할 때, 오른쪽부터 왼쪽으로 가면서 숫자를 하나씩 더한다. 그런데 희주는 귀찮아서 "받아 올림"을 하지 않고 그냥 두 숫자의 합을 적어버린다.
예를 들면, 희주는 숫자 123과 2495를 아래와 같이 더한다.
1 2 3
+ 2 4 9 5
----------------
2 5 11 8
그래서 답을 적을 때 25118을 적는 것이었다.
만약 모든 숫자를 다 이렇게 더한다면 결과가 어떻게 나오는 지 프로그램으로 작성하시오.
두 정수 A, B가 공백을 두고 주어진다. A와 B는 1과 1,000,000 사이의 정수이다.
희주 방식대로 더한 결과를 출력한다.
// let input = require('fs').readFileSync('/dev/stdin').toString().trim().split(' ');
let input = [`123`, `2495`];
let arrA = input[0].split('').map(n => parseInt(n));
let arrB = input[1].split('').map(n=>parseInt(n));
arrA.reverse();
arrB.reverse();
let answer = [];
if(arrA.length>=arrB.length){
for(let i=0; i<arrA.length; i++){
if(arrB[i]){
answer.push(arrA[i]+arrB[i])
}else{
answer.push(arrA[i]);
}
}
}else{
for(let i=0; i<arrB.length; i++){
if(arrA[i]){
answer.push(arrA[i]+arrB[i])
}else{
answer.push(arrB[i]);
}
}
}
answer.reverse();
console.log(answer.join(''))
자리수를 맞추기위해서 reverse를 하고 다시 reverse를 해서 답을 구하였다
✨input에서 split(' ')할때는 꼭 trim()을 해주자...