• Blog
  • Projects
  • Resume
profile_image

[Algorithm] LeetCode : Add Strings

Algorithm

2021.05.31

알고리즘 기초 다지기 프로젝트 (feat. 코드없는 프로그래밍) [2021년 05월 31일]



Leetcode - Add Strings

문제: LeetCode - 415. Add Strings

코드

  • 코드 (1) : 통과 성공
/**
   * @param {string} num1
   * @param {string} num2
   * @return {string}
   */

// const addStrings = (num1, num2) => (parseInt(num1) + parseInt(num2)) + '';  // 안됨

const addStrings = (num1, num2) => {
  const nMaxLength = Math.max(num1.length, num2.length);
  if (!nMaxLength) return;

  num1 = num1.padStart(nMaxLength, '0');
  num2 = num2.padStart(nMaxLength, '0');

  let resultTmp = '';
  let carry = 0;
  let nLoop = 0;
  let currIdx = nMaxLength - 1;

  while (nLoop < nMaxLength && currIdx > -1) {
    const value1 = Number(num1[currIdx]);
    const value2 = Number(num2[currIdx]);
    const sum = value1 + value2 + carry;
    resultTmp += sum % 10;
    carry = Math.floor(sum / 10);

    nLoop++;
    currIdx--;
  }
  carry !== 0 && (resultTmp += carry);

  // 배열 reverse쓰면 아찔..
  let result = '';
  let nReverse = resultTmp.length - 1;
  while (0 <= nReverse) {
    result += resultTmp[nReverse];
    nReverse--;
  }

  return result;
};


참고 자료

강의