본문 바로가기

내일배움캠프/Today I Learned

[내배캠] 나의 열세번째 회고록

역시,,집중을 안해서 못푼거였어 

오늘은 알고리즘 풀때 집중해서 풀었더니 

진도가 슥슥 잘 지나가는 거 같다 

못풀었던 Linkedlist문제도 풀었고 

오늘, 내일해서 재귀함수 부분까지 마치고 종합적으로 2강 알고리즘 개념을 정리하면 될 것같다. 

 

 

같이 수업듣는 분들이 4~5강을 듣고 있는걸 보면서 

요즘 마음이 조급하고 불안함이 들었었다.

 

그.러.나 

 

옆에 차가 빠르게 달린다고 해서 나도 속도를 내다가 사고가 나면 안되는 일

나는 나의 속도로 천천히 배워나가면 된다고 생각한다.

 

실제로 이런 마음가짐은

살면서 필요하다고 생각한다

모두가 빠르게 달릴 필요는 없다

그러나 규정은 지켜서 가야지

 

규정 = 기본기, 정해진 것을 해내는 것  

 

아래는 여태 못풀었던 Linkedlist 알고리즘이다

 

기본 원리를 잘 이해하고 넘어가자


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 print_all(self):
        cur = self.head
        while cur is not None:
            print(cur.data)
            cur = cur.next

    def get_node(self, index):
        node = self.head

        for i in range(index):
            node = node.next

        return node

    #노드추가
    def add_node(self, index, value):
         add_node = Node(value)
         new_node = self.get_node(index)

         cur = self.get_node(index - 1)
         cur.next = add_node
         cur = cur.next

         cur.next = new_node
         cur = cur.next

         return cur

    #노드 삭제
    def remove_node(self, index):
        cur = self.get_node(index-1)
        cur.next = self.get_node(index+1)
        cur = cur.next

        return cur


linked_list = LinkedList(5)
linked_list.append(12)
linked_list.append(44)
linked_list.get_node(1)
linked_list.add_node(2, 30)
linked_list.add_node(2, 50)
linked_list.remove_node(2)
linked_list.print_all()