415. Add Strings
💡풀이
var addStrings = function (num1, num2) {
if (num2.length > num1.length) return addStrings(num2, num1);
let j = num2.length - 1;
let answer = '';
let carry = 0;
for (let i = num1.length - 1; i >= 0; i--) {
let digit1 = i < 0 ? 0 : num1[i] - 0;
let digit2 = j < 0 ? 0 : num2[j] - 0;
let sum = carry + digit1 + digit2;
carry = 0;
if (sum >= 10) {
carry = 1;
sum %= 10;
}
answer = `${sum}${answer}`;
j--;
}
if (carry > 0) answer = `${carry}${answer}`;
return answer;
};
📝정리
Add Strings 문제를 다시 풀어봤다.
let digit1 = i < 0 ? 0 : num1[i] - 0;
이 코드에서, JS의 암묵적 형변환을 생각해서 num1[i] - 0
을 해서 num1[i]
를 숫자 타입으로 바꿔서 계산해줬다.
sum >= 10
보다 큰 경우는, 다음 자리에 +1
을 해줘야 하기 때문에 carry
변수를 1
로 만들어준다.
그 밑에 carry
를 다시 0으로 초기화 시켜준 이유는, 마지막에 if(carry > 0)
조건에 걸릴 수가 있기 때문이다.
마지막 조건은 num1 = 9
, num2 = 1
인 경우를 생각해보자. 마지막 조건이 들어가지 않고 바로 answer
을 return
하게 되면, 0
을 return
하게 되는데, 이러한 경우를 예외 처리 하기 위해 해당 조건을 넣어줬다.
수정, 지적을 환영합니다!
문제 링크
https://leetcode.com/problems/add-strings/
LeetCode GitHub
https://github.com/tTab1204/LeetCode
Author And Source
이 문제에 관하여(415. Add Strings), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ken1204/415.-Add-Strings저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)