[ 백준 ] 8949 대충 더해 [ js ]

Ann·2022년 9월 29일
0

Algorithm

목록 보기
32/53

8949 대충 더해

문제

강민이는 동생 희주를 위해 수학 문제를 만들고 있다. 희주는 매일 연습하고 열심히 공부했지만, 아직도 더하기를 끝내지 못했다.
숫자를 더할 때, 오른쪽부터 왼쪽으로 가면서 숫자를 하나씩 더한다. 그런데 희주는 귀찮아서 "받아 올림"을 하지 않고 그냥 두 숫자의 합을 적어버린다.
예를 들면, 희주는 숫자 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()을 해주자...

profile
안녕하세요

0개의 댓글