TIL_221124

KIXIAM·2022년 11월 24일
1

algorithm

목록 보기
2/3
post-thumbnail

알고리즘 3일차

오전에 링크드리스트 수업을 들은 후에 코딩이 되지 않고 머리속에서도 잘 그려지지 않았다. 결국 수업 끝나고 점심을 먹은 후에 링크드리스트정리를 시작으로 점심시간을 마무리 지었다.
확실히 정리와 펜으로 직접 써서 이해를 다시 해보려하니까 무언가 신기루가 잡힐 듯한 기분이 들었다.
일단 파이썬 def 내에서 자유롭게 변수를 만들고 반복문을 돌고 필요한게 무엇인지부터 빠르게 파악해서 가져다 쓰는 연습을 들여야겠다.
오늘 자기 전에 다시 정리해봐야 할 점은 링크드리스트의 추가(append) 삭제(delete) 개념이다. 더불어 임의의 k값 즉 input값이 들어온다 가정하였을 때 마지막 리스트에서 k 번째 리스트의 값을 반환하는 개념도 다시 복습해봐야한다.
for문과 while문을 이용, 그리고 두개의 포인터를 두고 하는 개념도 배웠다.

  def get_kth_node_from_last(self, k):
        slow = self.head
        fast = self.head     
        for i in range(k):
            fast = fast.next
       while fast is not None:
            slow = slow.next
            fast = fast.next
        return slow

두개의 head를 지정해주고 매개변수 값 만큼 한개의 head를 이동시키고 반복문이 끝나면 두개의 포인터가 같이 움직여 처음 출발한 head가 값을 더이상 반환하지 않을 때 두번째의 head가 현재 가리키는 값을 return하는 내용이다. 처음엔 이해가 가지 않았지만 그림을 그려보고 차근차근 생각해보니 이해가 되었다.

profile
Project Oriented Learning 🔥

0개의 댓글