알고리즘/이론

[알고리즘] 링크드리스트의 값들을 자리대로 숫자로 만들어 합하기

자바칩 프라푸치노 2021. 6. 13. 15:49

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None


class LinkedList:
    def __init__(self, value):
        self.head = Node(value)

    def append(self, value):
        cur = self.head
        while cur.next is not None:
            cur = cur.next
        cur.next = Node(value)


def get_linked_list_sum(linked_list_1, linked_list_2):
    sum_1 = get_linked_list_sum(linked_list_1)
    sum_2 = get_linked_list_sum(linked_list_2)
    return sum_1+sum_2

def _get_linked_list_sum(linked_list):
    sum = 0
    head = self.head
    while head is not None:
        sum += sum*10 + head
        head = head.next
    return sum


linked_list_1 = LinkedList(6)
linked_list_1.append(7)
linked_list_1.append(8)

linked_list_2 = LinkedList(3)
linked_list_2.append(5)
linked_list_2.append(4)

print(get_linked_list_sum(linked_list_1, linked_list_2))

링크드 리스트에서 head부터 차례대로 꺼내는데

첨에는 6 -> 6*10 + 7 -> 67*10 + 8 이런식으로 되어야한다

sum에 값을 저장하고 다음에는 10을 곱한 다음 값을 저장하는 식으로 반복문을 돌려야한다

728x90