415. Add Strings

6639 단어 leetcodeleetcode

💡풀이

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인 경우를 생각해보자. 마지막 조건이 들어가지 않고 바로 answerreturn 하게 되면, 0return 하게 되는데, 이러한 경우를 예외 처리 하기 위해 해당 조건을 넣어줬다.

수정, 지적을 환영합니다!

문제 링크

https://leetcode.com/problems/add-strings/

LeetCode GitHub

https://github.com/tTab1204/LeetCode

좋은 웹페이지 즐겨찾기