22. 09. 21.

hyo_d·2022년 9월 21일
0

캠프 16일차

1. 일과

👉 거북이반 3일차 과제

👉 거북이반 스터디(4일차)

👉 자료구조 알고리즘(~2-6 링크드 리스트)

2. 어레이(array)와 링크드 리스트(linked_list)

1) 어레이 예시

 1. 총 8명이 잘 수 있는 캡슐 호텔이 있다. 소녀시대 8명이 숙박할 계획
 → 배열은 크기가 정해진 데이터의 공간. 한 번 정해지면 바꿀 수 없다.
 
 2. 각 호수에 있는 멤버들의 방에 방문해 웰컴 드링크를 전달했다.
 → 배열은 각 방(원소)에 room[0]식으로 접근 할 수 있다. 원소의 순서는 0부터 시작하며 인덱스라고 부른다.
 
 3. 이 때, 서현이 수영과 티파니 사이의 방에서 자고 싶다고 한다.
 → 배열은 원소를 중간에 삽입/삭제 하려면 모든 원소를 다 옮겨야 한다. 
 
 4. 이후 방 하나를 더 준비해달라고 연락이 왔다. 그래서 옆 공터에 방이 9개인 호텔을 지었다.
 → 원소를 새로 추가하려면, 새로운 공간을 할당해야 하므로 매우 비효율적인 자료구조

2) 링크드 리스트 예시

 1.5칸을 실은 화물 열차가 있고, 각 화물칸은 연결고리로 이어져 있다.
 → 리스트는 크기가 정해지지 않은 데이터의 공간이며 연결 고리로 이어주기만 하면, 자유자재로 늘어날 수 있다.
 
 train_compartments = ["기관실"] -> ["시멘트"] -> ["자갈"] -> ["밀가루"] -> ["우편"]
 
 2. 우편 칸에 잠시 일이 생겨 모든 화물칸을 지나 우편칸에 도착했다.
 → 리스트는 특정 원소에 접근하려면 연결 고리를 따라 탐색해야 한다. 
   여기서, 연결 고리를 포인터라 부르고, 각 화물 칸을 노드라고 부른다.
   
  # 처음 상태             내 위치
  train_compartments = ["기관실"] -> ["시멘트"] -> ["자갈"] -> ["밀가루"] -> ["우편"]

  # 1번 이동                           내 위치
  train_compartments = ["기관실"] -> ["시멘트"] -> ["자갈"] -> ["밀가루"] -> ["우편"]

  # 2번 이동                                       내 위치
  train_compartments = ["기관실"] -> ["시멘트"] -> ["자갈"] -> ["밀가루"] -> ["우편"]

  # 3번 이동                                                   내 위치
  train_compartments = ["기관실"] -> ["시멘트"] -> ["자갈"] -> ["밀가루"] -> ["우편"]

  # 4번 이동                                                               내 위치
  train_compartments = ["기관실"] -> ["시멘트"] -> ["자갈"] -> ["밀가루"] -> ["우편"]
 
 3. 자갈 칸과 밀가루 칸 사이에 흑연이라는 칸을 넣기로 했다.
 → 리스트는 원소를 중간에 삽입/삭제 하기 위해서는 앞 뒤의 포인터만 변경하면 된다.
 
  # 처음 상태
  ["기관실"] -> ["시멘트"] -> ["자갈"] -> ["밀가루"] -> ["우편"]
                                 ["흑연"] 을 중간에 넣어야 한다

  # 자갈 칸의 연결고리를 흑연 칸으로 연결하고,
  ["자갈"] -> ["흑연"]   ["밀가루"] -> ["우편"]

  # 흑연 칸으로 연결고리를 밀가루 칸으로 연결한다. 
  ["자갈"] -> ["흑연"] -> ["밀가루"] -> ["우편"]
 
 4. 가던 도중 밀가루가 상해서 밀가루 칸을 버린다.
 
  # 현재 상태
  ["기관실"] -> ["시멘트"] -> ["자갈"] -> ["흑연"] -> ["밀가루"] -> ["우편"]
                                                  ["밀가루"] 칸을 버려야 한다

  # 흑연 칸의 연결고리를 떼서, 우편 칸으로 연결하면 된다
  ["흑연"]     ->      ["우편"]  
          ["밀가루"]

3) 어레이와 링크드리스트 비교

3. 거북이반 스터디(4일차)

1) 클래스

2) 상속

회고

⭐ 헷갈렸던 개념들을 이해하는데 큰 도움이 되었던 거북이반 스터디가 종료되었다.. 뭔가 든든했는데 끝난다니 아쉽다😂 내일부터 지금까지 해왔던 것들을 토대로 장고 수업이 시작되는데 걱정반 기대반이다.. 팀변경도 이뤄지는데 기존의 우리팀도 정말 좋았지만, 팀원들끼리 상의를 해서 캠프 취지에 맞게 다양한 캠퍼들과 협업하는 경험을 하기로하고 팀 변경을 희망했다. 따라서 내일부터 다른팀에 편성될 예정이다. 새로운 팀에 빨리 적응하고 장고 프로젝트도 성공적으로 해내고 싶다💪

profile
햇병아리

0개의 댓글