안녕하세요, HELLO
오늘은 Leetcode 알고리즘 문제 '2. Add Two Numbers'에 대해서 살펴보고자 합니다.
알고리즘 문제, 코드, 해설 그리고 Leetcode에서 제공해준 solution 순서대로 정리하였습니다.
STEP 1. 'Add Two Numbers' 알고리즘 문제
STEP 2. 'Add Two Numbers' 코드(code)
STEP 3. 'Add Two Numbers' 해설
STEP 1. 'Add Two Numbers' 알고리즘 문제
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
음수가 아닌 두 정수를 나타내는 두 개의 비어 있지 않은 리스트가 제공됩니다. 숫자는 역순으로 저장되며 각 노드에는 1개의 숫자가 포함됩니다. 두 숫자를 더하고 합계를 연결된 목록으로 반환합니다.
숫자 0 자체를 제외하고 두 숫자에 선행 0이 포함되어 있지 않다고 가정할 수 있습니다.
Constraints:
- The number of nodes in each linked list is in the range [1, 100].
- 0 <= Node.val <= 9
- It is guaranteed that the list represents a number that does not have leading zeros.
STEP 2. 'Add Two Numbers' 코드(code)
■ Runtime: 106 ms, faster than 39.28% of Python3 online submissions for Add Two Numbers.
■ Memory Usage: 13.8 MB, less than 89.42% of Python3 online submissions for Add Two Numbers.
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]:
dummy = ListNode()
cur = dummy
carry = 0
while l1 or l2 or carry:
v1 = l1.val if l1 else 0
v2 = l2.val if l2 else 0
# new digit
val = v1 + v2 + carry
carry = val // 10
val = val % 10
cur.next = ListNode(val)
# update pointers
cur = cur.next
l1 = l1.next if l1 else None
l2 = l2.next if l2 else None
return dummy.next
STEP 3. 'Add Two Numbers' 해설
작성에 참고한 코드 해설 영상 URL을 공유드립니다. 자세히 살펴보실 분은 살펴보시기 바랍니다.
https://www.youtube.com/watch?v=wgFPrzTjm7s
■ 마무리
오늘은 Leetcode 알고리즘 문제 '2. Add Two Numbers'에 대해서 알아봤습니다.
좋아요와 댓글 부탁드리며,
오늘 하루도 즐거운 날 되시길 기도하겠습니다 :)
감사합니다.
'PROGRAMMING > LeetCode' 카테고리의 다른 글
[Leetcode] 5. Longest Palindromic Substring_해설, 풀이, 설명 (0) | 2022.04.02 |
---|---|
[Leetcode] 4. Median of Two Sorted Arrays_해설, 풀이, 설명 (0) | 2022.04.01 |
[Leetcode] 3. Longest Substring Without Repeating Characters_해설, 풀이, 설명 (0) | 2022.03.29 |
[Leetcode] 1. Two sum_해설, 풀이, 설명 (0) | 2022.03.28 |
[Leetcode] 리트코드 활용법 및 공부법 (1) | 2022.03.26 |
댓글