본문 바로가기
LeetCode

415. Add Strings 문제 c++

by O_x 2022. 7. 10.
415. Add Strings
Easy
3455574Add to ListShare

Given two non-negative integers, num1 and num2 represented as string, return the sum of num1 and num2 as a string.

You must solve the problem without using any built-in library for handling large integers (such as BigInteger). You must also not convert the inputs to integers directly.

큰 정수(예: BigInteger)를 처리하기 위해 
내장 라이브러리를 사용하지 않고 문제를 해결해야 합니다.
또한 입력을 정수로 직접 변환해서는 안 됩니다.

Example 1:

Input: num1 = "11", num2 = "123"
Output: "134"

Example 2:

Input: num1 = "456", num2 = "77"
Output: "533"

Example 3:

Input: num1 = "0", num2 = "0"
Output: "0"

 

Constraints:

  • 1 <= num1.length, num2.length <= 104
  • num1 and num2 consist of only digits.
  • num1 and num2 don't have any leading zeros except for the zero itself.

 

 

내장 된 라이브러리를 사용하지 않는게 문제의 조건이기에 좀더 돌아서 풀어야 한다.

 

간단한 개념을 숙지하면 쉽게 풀 수 있는 문제이다.

 

문자형 숫자의 아스키 값을 알 필요가 있다.

'0' 이라는 문자형은 48의 값을 가진다고 해석하면 된다.

그렇다면 '1' 이라는 문자형을 정수형으로 치환하면

49의 값을 가지게 된다 그럼 이 수에 '0'의 값을

빼주면 1이 된다 (49 - 48 = 1)  이런 식으로

문자형 숫자정수형으로 바꿀 수 있다.

 

 

 

class Solution {
public:
    string addStrings(string num1, string num2) {
        string ans="";
        int carry =0; 
        int i = num1.size()-1, j = num2.size()-1; 
        
        while(i >= 0 || j >= 0 || carry){
            int sum=0;
            //숫자의 아스키 값은 48번부터 0~9를 할당하고 있으므로, char형 '1'은 정수값 49를 가진다. 
            //따라서 0의 아스키 값인 48을 char형의 값에서 빼주면 순수한 숫자를 얻어낼 수 있다.
            if(i >= 0) sum+=(int)num1[i]-'0'; i--;
            if(j >= 0) sum+=(int)num2[j]-'0'; j--;
            sum += carry;
            carry = sum/10;
            ans.push_back((char)sum%10 +'0'); 
            //나머지 값이니 여긴 0을 더해준다.
        }
        reverse(ans.begin(), ans.end()); // push_back으로 넣은 값이기에 순서를 뒤집어 주여야한다.
        return ans; 
    }
};

운영중인 카톡방입니다.

https://open.kakao.com/o/gsMhUFie

 

C/C++/C# 언리얼/유니티 /질문

#C++#C#언리얼#게임개발#질문#개발#자료구조#백준#프로그래머스#c#유니티#unity#enreal

open.kakao.com

 

'LeetCode' 카테고리의 다른 글

387. First Unique Character in a String 문제풀이  (0) 2022.07.19
20. Valid Parentheses 문제풀이  (0) 2022.07.13
125. Valid Palindrome 문제  (0) 2022.07.10
796. Rotate String 문제  (0) 2022.07.07
28. Implement strStr() c++  (0) 2022.07.07

댓글