배고픈 개발자 이야기
[Python] Add Two Numbers 본문
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
'알고리즘 문제 > LEETCODE' 카테고리의 다른 글
[Python] Letter Combination of a Phone Number (0) | 2021.05.06 |
---|---|
[Python] Binary Tree Inorder Traversal (0) | 2021.05.06 |
[Python] 3Sum (0) | 2021.05.06 |
[Python] Longest Valid Parentheses (0) | 2021.05.06 |
[Python] Valid Parentheses (0) | 2021.05.06 |
Comments