Chapter1. 자료구조
  1.자료구조에 대해 이해합니다.
  2.자료구조의 특징에 대해 이해합니다.
  3.자주 등장하는 자료구조가 무엇인지 이해합니다.
Chapter2. Stack과 Queue
 Chapter2-1. Stack
  4.스택의 구조와 특징에 대해 이해합니다.
  5.스택의 실사용 예제를 보고, 스택이 어떻게 이용이 되는지 이해합니다.
  6.직접 구현한 스택이 어떤 식으로 동작하는지 이해하고, JavaScript 배열의 어떤 메서드를 사용해야 하는지 압니다.
  7.JavaScript의 배열과 스택은 어떤 차이가 있는지 이해합니다.
 Chapter2-2. Queue
  8.큐의 개념과 구조, 특징에 대해 이해합니다.
  9.큐의 실사용 예제를 보고, 큐가 어떻게 이용이 되는지 이해합니다.
  10.직접 구현한 큐가 어떤 식으로 동작하는지 이해하고, JavaScript 배열의 어떤 메서드를 사용해야 하는지 압니다.
  11.JavaScript의 배열과 큐는 어떤 차이가 있는지 이해합니다.


1.자료구조는 여러 데이터의 묶음을 저장하고, 사용하는 방법을 정의한 것으로 여러가지 방법들이 있다.

2.자료구조는 특정한 상황에 놓인 문제를 해결하는 데에 특화되어 있다는 특징이 있기 때문에 많은 자료구조를 알아두면, 어떠한 상황이 닥쳤을 때 적합한 자료구조를 빠르고 정확하게 적용하여 문제를 해결할 수 있다.

3.자주 등장하는 자료구조는 Stack, Queue, Tree, Graph 4가지로 자료구조 기초에서 모두 배울 예정이다. (Stack, Queue는 오늘 완료)

4.스택은 FILO이라는 특징을 가지고 있으며 탑을 쌓은 후 탑의 윗부분부터 제거해야 하는 것과 유사한 느낌을 가지고 있다. 이런 특징을 가지고 있기 때문에 특수한 목적이 없는 이상 배열을 그대로 가져다가 사용해도 문제가 없다(push, pop)

5.브라우저의 앞, 뒤로가기 페이지 또한 Stack으로 볼 수 있는데 이를 편하게 확인하고 싶은 경우 위키에 A~Z까지를 검색해보면서 그 페이지를 시작으로 띄우게 되면 앞, 뒤 스택을 구분하며 테스트 해볼 수 있었다.

6.위에서 언급했지만 push()와 pop()만으로도 구현을 할 수 있다.

7.배열은 idx값을 통해 조회를 할 수 있지만 일반적으로 스택은 내보내고 넣는 기능 그리고 size를 체크하는 기능 3가지 밖에 없기 때문에 조회에는 불리함을 가지고 있으며 그 만큼 넣고 내보내는 기능에 특화되어 더 빠르고 적은 메모리를 소모한다는 장점이 있다.

8.큐는 스택처럼 한가지 기능(넣고 빼는 것)에 특화되어 있지만 FIFO이라는 순서를 가지고 있다. 그렇기 때문에 shift 또는 unshift와 pop /push 중 하나를 같이 사용해야 하기 때문에 배열보다는 그래프로 직접 구현하는 편이 훨씬 유리하다.

9.프린터 등 작업 목록 또는 로스트아크 대기열, 재고관리등 여러가지에 큐 또는 큐의 원리가 이용됨을 알 수 있다.

10.큐의 동작은 넣고 앞을 뺴는 것의 반복이기 때문에 더 이해할 것은 없어 보이고 JS의 push와 shift를 사용해 유사하게 구현할 수 있다.

11.JS의 배열은 heap을 계속해서 늘리는 방식이기 때문에 데이터적인 문제가 있으며 idx로 접근할 수 있는지 여부의 차이가 있다.


스택과 큐는 이미 알고리즘을 학습해서 쉽게 진행할 수 있었으며
어드밴스드 문제들도 부담없이 해결할 수 있었다.

'회고' 카테고리의 다른 글

학습(React)  (0) 2022.08.14
학습(알고리즘)  (0) 2022.08.13
코딩 테스트 준비-2  (0) 2022.08.11
코딩 테스트 준비  (0) 2022.08.10
CI/CD-2  (0) 2022.08.09

+ Recent posts