본문 바로가기

카테고리 없음

Leetcode Add Two numbers

class Solution:
    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        num1 = ""
        num2 = ""

        now = l1
        while now:
            num1 = str(now.val) + num1
            now = now.next

        now = l2
        while now:
            num2 = str(now.val) + num2
            now = now.next

        result = list(str(int(num1) + int(num2)))

        answer = ListNode(result[0], None)
        for i in range(1, len(result)):
            temp = ListNode(result[i], answer)
            answer = temp

        return answer

문제

두개의 음이 아닌 정수를 표현하는 비어있지 않은 연결리스트가 주어진다. 하나의 숫자를 포함하고 있는 각각의 노드는 역순으로 저장되어있다. 두 정수를 더한 결과를 연결리스트의 형태로 반환한다.

 

풀이 방법

두개의 연결노드를 생성한다. 각각 반복해서 연결노드에 숫자를 추가한다. 요소의 길이가 더 짧으면 먼저 추가를 끝낸다.

합이 9가 넘어가게 되면 올림을 통하여 다음 노드와 더하여 계산을 수행한다