타입 변환 없이 수문자열 더하기

숑숑·2021년 6월 12일
0

알고리즘

목록 보기
106/122
post-thumbnail

문제가 쉬워서 심심풀이 겸 풀어봤는데
절대 땅콩 수준 문제가 아니다..! 초등수학을 직접 구현해야한다.
특히 아스키코드로 문자열의 간격을 파악해 수를 알아내는 아이디어는 꽤 유용하니 기억하자.

Solution

class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        res = []
        carry = 0
        
        p1 = len(num1) - 1
        p2 = len(num2) - 1
        
        while p1 >= 0 or p2 >= 0:
            x1 = ord(num1[p1]) - ord('0') if p1 >= 0 else 0
            x2 = ord(num2[p2]) - ord('0') if p2 >= 0 else 0
            
            carry, rem = divmod(x1+x2+carry, 10)
            res.append(rem)
            
            p1 -= 1
            p2 -= 1
        
        if carry:
            res.append(carry)
            
        return "".join(map(str, res[::-1]))
profile
툴 만들기 좋아하는 삽질 전문(...) 주니어 백엔드 개발자입니다.

0개의 댓글