s5unnyjjj's LOG

[홀로 하는 코딩 공부] 002. Add Two Numbers(Python) 본문

Algorithm/Python

[홀로 하는 코딩 공부] 002. Add Two Numbers(Python)

s5unnyjjj 2024. 10. 11. 22:03

LeetCode

사용 언어: Python

문제 링크: https://leetcode.com/problems/add-two-numbers/

 

*** 본 문제를 푸는 과정을 공유하려 한다.


▶ 차근차근 하나씩 단계를 나누어 보았으며, 크게 3개의 STEP으로 나누어진다. (이 역시 그림으로 그려보니 수월했다.)

 

 

그렇게 각 단계를 포함한 기능들 코드로 작성하면 아래와 같다.

class Solution:
    def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]:
        reverse_l1 = self.reverse(l1)
        final_l1 = self.changeList(reverse_l1)

        reverse_l2 = self.reverse(l2)
        final_l2 = self.changeList(reverse_l2)

        ans = int(''.join(str(e) for e in final_l1)) + int(''.join(str(e) for e in final_l2))

        return self.changeLikednode(str(ans))


    def reverse(self, head):
        node, prev = head, None
        
        while node is not None:
            temp = node.next
            node.next = prev
            prev = node
            node = temp

        return prev

    def changeList(self, head):
        node = head
        ary = []

        while node is not None:
            ary.append(node.val)
            node = node.next

        return ary

    def changeLikednode(self, contents):
        head = None

        for content in contents:
            node = ListNode(content) # Step1
            node.next = head # Step2
            head = node # Step3

        return node

 

 


>> 위 내용은 필자가 알고리즘 문제를 푼 코드입니다.

>> 부족한 점이 많을 수 있기에 잘못된 내용이나 궁금한 사항이 있으면 댓글 달아주시기 바랍니다.

>> 긴 글 읽어주셔서 감사합니다. 

반응형
Comments