알고리즘 문제/LEETCODE
[Python] Add Two Numbers
이융희
2021. 5. 6. 02:25
728x90
Medium 난이도 Acceptence 35.9% 문제
입력된 listnode 두개는 10진수의 숫자의 역순으로 원래의 두값을 더한 후 다시 역순으로 반환하면 되는 문제다.
더한값 sum과 carry값 및 반환용 dummy로 listnode 얕은복사값 사용
값은 두값 또는 carry값이 있을 경우 계속 계산한다.
해당 자리수의 값을 sum한 후 10의 몫을 carry값, 나머지를 해당자리수의 값으로 계산한다.
class Solution(object):
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
c = 0
s = 0
dummy = ListNode()
curr = dummy
while l1 or l2 or c:
s = c
if l1:
s += l1.val
l1 = l1.next
if l2:
s += l2.val
l2 = l2.next
c = s / 10
curr.next = ListNode(s % 10)
curr = curr.next
return dummy.next