알고리즘
[LeetCode] 415 Add Strings JavaScript
sandwe
2022. 7. 22. 21:32
문제 링크
Add Strings - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
문제 유형
문자열 (String)
문제 풀이
이 문제는 숫자 2개가 string 타입으로 주어지고, 숫자 2개를 더한 연산 결과를 string 타입으로 반환하는 문제이다.
초등학교 때 두 수의 덧셈할 때 일의 자리부터 더하면서 받아올림을 위의 자리로 올려주는 방법을 배웠다. 이 방법을 이용하면 된다.
받아올림(carry)은 각 자리의 합을 10으로 나눈 것이다. 해당 자리에 들어갈 값은 각 자리의 합을 10으로 나눈 나머지이다. 만약, 반복문을 돌면서 현재 인덱스의 위치에 값이 없어 undefined가 나온다면 0으로 대체한다. 반복문을 탈출하고 마지막으로, 남아있는 받아올림을 추가한다.
코드
var addStrings = function(num1, num2) {
const len1 = num1.length - 1, len2 = num2.length - 1;
const max = Math.max(num1.length, num2.length);
let carry = 0, answer = "";
for (let i = 0; i < max; i++) {
const sum = carry + parseInt(num1[len1 - i] || 0) + parseInt(num2[len2 - i] || 0);
carry = Math.floor(sum / 10);
answer = sum % 10 + answer;
}
if (carry > 0) answer = carry + answer; // "1" + "9" = "10"
return answer;
};