자료구조

Chunli91·2022년 11월 17일
0

1. 자료구조란?

자료구조란 여러 데이터의 묶음을 저장하고, 사용하는 방법을 정의한 것이다.

자료구조를 설명하기에 앞서, 데이터(data)는 무엇일까? 데이터는 문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 모든 값입니다. 우리의 이름, 나이, 키, 집 주소, 목소리 혹은 유전자 DNA까지 데이터로 분류할 수 있다. 그러나 데이터는 그 자체만으로 어떤 정보를 가지기 힘들다. 예를 들어 나이라는 데이터만 알고 있다면, 사람의 나이인지, 강아지의 나이인지, 나무의 나이인지 알 수 없다. 이처럼 데이터는 분석하고 정리하여 활용해야만 의미를 가질 수 있다.

그뿐만 아니라 데이터를 사용하려는 목적에 따라 형태를 구분하고, 분류하여 사용한다. 만약 서로 다른 형태의 데이터를 하나의 방법으로만 정리하고 활용한다고 가정해 보겠다.

전화번호부를 작성할 때처럼, 숫자를 3개 또는 4개씩 묶음 짓고 하이픈(-)으로 합칩니다. 이 숫자의 묶음에 이름을 붙여 보관해야 한다면, 해당 데이터를 꺼낼 때에는 항상 특정 이름을 입력해야 숫자를 얻을 수 있다. 전화번호부를 만든다면 그대로 사용해도 무방하지만, 전화번호부가 아닌 메일 주소와 이름을 매칭해 보관하거나, 메신저 아이디와 이름을 매칭해 보관해야 할 때에는 하이픈()이 필요하지 않다. 이런 방법으로 숫자 데이터를 저장한다면, 모든 숫자에 필요하지 않은 이름을 꾸역꾸역 붙여야 한다. 이처럼 필요에 따라 데이터의 특징을 잘 파악(분석)하여 정리하고, 활용해야 한다.

데이터를 정해진 규칙 없이 저장하거나, 하나의 구조로만 정리하고 활용하는 것보다 데이터를 체계적으로 정리하여 저장해두는 게, 데이터를 활용하는 데 있어 훨씬 유리하다.

2. 자료구조의 분류

무수한 상황의 예시
번호를 다 알지 않아도, 이름을 아는 것만으로 전화를 할 수 있는 방법은 무엇이 있을까?
웹 브라우저에서 뒤로 / 앞으로 가는 방법은 무엇이 있을까?
게임 매칭을 잡을 때, 수많은 사람을 통제하는 방법엔 무엇이 있을까? ...등등

이 많은 방법 중에서, 가장 많이 쓰이고 알고리즘 테스트(코딩 테스트)에 자주 등장하는 네 가지를 학습한다.

자주 등장하는 네 가지의 자료구조
Stack, Queue, Tree, Graph

3. 자료구조의 특징

대부분의 자료구조는 특정한 상황에 놓인 문제를 해결하는 데에 특화되어 있다. 따라서 많은 자료구조를 알아두면, 어떠한 상황이 닥쳤을 때 적합한 자료구조를 빠르고 정확하게 적용하여 문제를 해결할 수 있다. 이것은 문제 해결력을 필요로 하는 알고리즘 테스트(코딩 테스트)와 굉장히 밀접한 연관성이 있다. 특정 문제를 해결하는 데에 적합한 자료구조를 찾아 데이터를 정리하고 활용할 줄 알면, 상황에 가장 적합하고 정확한 코드를 작성할 수 있다.

profile
30대에 새로운 도전을 시도하는 사람입니다.

0개의 댓글