자료구조 : 여러 데이터의 묶음을 저장하고, 사용하는 방법을 정의한 것
데이터 : 문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 모든 값
데이터는 분석하고 정리하여 활용해야만 의미를 가질 수 있습니다.
그뿐만 아니라 데이터를 사용하려는 목적에 따라 형태를 구분하고, 분류하여 사용합니다.
필요에 따라 데이터의 특징을 잘 파악(분석)하여 정리하고, 활용해야 합니다.
데이터를 정해진 규칙 없이 저장하거나, 하나의 구조로만 정리하고 활용하는 것보다 데이터를 체계적으로 정리하여 저장해두는 게, 데이터를 활용하는 데 있어 훨씬 유리합니다.

선배 개발자들은 무수한 상황에서 데이터를 효율적으로 다룰 방법을 모두 모아, 자료구조라는 이름을 붙였습니다.
자주 등장하는 네 가지의 자료구조
Stack, Queue, Tree, Graph

대부분의 자료구조는 특정한 상황에 놓인 문제를 해결하는 데에 특화되어 있습니다.
따라서 많은 자료구조를 알아두면, 어떠한 상황이 닥쳤을 때 적합한 자료구조를 빠르고 정확하게 적용하여 문제를 해결할 수 있습니다.
이것은 문제 해결력을 필요로 하는 알고리즘 테스트(코딩 테스트)와 굉장히 밀접한 연관성이 있습니다.
특정 문제를 해결하는 데에 적합한 자료구조를 찾아 데이터를 정리하고 활용할 줄 알면, 상황에 가장 적합하고 정확한 코드를 작성할 수 있습니다.
알고리즘 문제를 마주했을 때 문제를 풀기에 적합한 자료구조를 파악하고, 그에 알맞게 자료구조를 사용해야 합니다.
알고리즘 문제를 만날 때마다 필요한 자료구조를 클래스로 직접 정의해서 풀기에는 다소 많은 시간이 소요됩니다.
테스트 시간이 무제한이라면 상관없지만, 대부분의 알고리즘 테스트에는 제한 시간이 존재합니다.
테스트에 걸리는 시간을 단축하고 알고리즘 문제 풀이에 집중하기 위해,
JavaScript에서 제공하는 배열(Array)과 같은 데이터 타입을 이용해 자료구조의 형태와 유사하게 구현하여 문제를 해결합니다.