오늘 수업 때 했던 퀴즈에서 3등/15 을 했다.
별 거 아닐 수 있지만 나 스스로는 너무 감격해서 내 이름이 나왔을 때 셀피를 찍고 싶었지만
조용히 등수만 스크린샷을 찍었다.
그것도.
이머시브 과정 중에 가장 어렵다고 하는 hash table이 포함된 퀴즈에서!
열심히 공부했는데 보람이 있었다.
11시에 애기 재우고 새벽 공부를 한 보람이.
퀴즈 하나가 전부를 의미하는 건 아니지만, 꽤 큰 의미였다.
또 열심히 해 봐야지.
< linked list, hash table 에 관한 질문 및 답변 >
- JavaScript 공부할 때 mdn공식 문서를 보았던 것처럼 Data Structure에 관한 공식 문서는 없나요?
-> 네. 코드스테이츠 강의 내용 외에는 유튜브 같은 데를 참고해 보세요.
많이 본다고 좋은 건 아니고 어떤 부분을 모르는지 질문 내용을 특정해서 검색해 볼 것을 추천해드립니다.
- 배열이나 객체와는 달리 linked list 나 hash table 등 자료구조들은 참고하는 문서들마다 언급하는 속성이나 메서드가 조금씩 다릅니다.
-> 그렇습니다. 과제에서 나왔던 내용들 위주로 알면 될 것 같습니다.
- peek 와 top 이 같은 의미로 쓰이는 것 같은데 두 가지 용어가 있는 이유가 뭔가요? 다른 건가요?
-> 사실 같은 역할을 한다.
< Kahoot 퀴즈 내용 복습 >
- top 값은 맨 위에 위치한 데이터의 index 값으로 값을 꺼내(삭제하)지는 않는다.
- 스택에 할당된 공간이 꽉 차면 더 이상 push할 수 없으므로 stack overflow 상태가 된다.
- A,E,C,F,D 를 차례대로 넣은 후 top값을 두 번 삭제하면 A,E,C 만 남게 됨.
- top 값을 조회하는 peek는 C, stack의 사이즈는 3이 된다.
- 하노이의 탑의 구조는 오히려 가장 마지막에 삽입된 것이 먼저 나오게 되는 stack과 유사하다.
- front부터 rear의 갯수를 세면 (6-2) +1 = 5
- 예를 들어 index 3의 값을 찾는다고 가정하면 배열의 경우 한 번에 찾을 수 있지만 linked list의 경우 두 번의 연산을 더 거쳐야 한다.
- 보통 index 만큼의 연산을 하므로 배열보다 오래 걸리게 된다.
- 단일 연결 리스트는 한 방향으로 next 속성만 가지므로 이전 노드를 알 수 없다.
- 필요한 곳 어디에나 노드를 추가할 수 있다는 점이 linked list의 장점 중 하나이다.
- 이중 연결 리스트에서 하나의 값을 저장하기 위해 필요한 것은 2개의 레퍼런스이다. (next, previous)
- 노드를 삭제한다는 것은 노드의 연결을 끊는 것을 의미한다. 따라서 가장 앞에서 한 번 끊으면 이후 모든 노드의 연결이 끊어진다.
- 최악의 경우 가장 마지막에 찾는 값이 있다고 가정하므로 최대 10번까지 검색이 필요하다.
- 해시 함수는 항상 고유한 값을 만들어서 1:1로 매핑하는 것이 아니라 같은 출력값이 생기면 충돌을 일으킨다.
- 해시 함수를 통해 만들어진 출력은 원래의 입력 값으로 되돌릴 수 없다는 특징 때문에 비밀번호 저장 등에 사용된다.
- 해시 테이블에 값을 삽입할 때 apple 이라는 키를 두 번 넣으면 마지막에 넣은 값으로 덮어 씌우게 된다.
- 위 해시 함수는 키를 입력 받아서 키의 길이를 반환하는 함수이다.
- name, age, height, weight, mobile 이라는 키를 차례로 넣으면 4,3,5,5,5 라는 해시값을 리턴하게 된다.
- 즉, height까지는 이전값과 같지 않으므로 문제가 없지만 weight를 입력할 때, mobile을 입력할 때 충돌이 2번 일어나게 된다.
'TIL ( CODESTATES)' 카테고리의 다른 글
queue, stack - pseudocode, implementation (0) | 2020.11.03 |
---|---|
구조 분해 할당 - 객체 (0) | 2020.11.02 |
Data Structure - stack, queue (0) | 2020.10.31 |
Data Structure - Linked List, Hash Table (0) | 2020.10.31 |
for ... in / for ... of (0) | 2020.10.30 |