[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

💻 CS/자료구조 & 알고리즘

[자료구조] 자료구조란?

inu 2020. 1. 2. 14:00
반응형

자료구조란?

데이터를 저장하고 관리하기 위한 구조이다.

예를 들어, 도서관에서 로미오와 줄리엣이라는 책을 찾으려고 할 때?


[문학 도서 구역] -> [영문 고전 구역] -> [제목순 혹은 연도순로 꽂혀있는 책들]에서 로미오와 줄리엣을 찾는다.

이렇게 책을 찾을 수 있었던 것도 도서관 책들이 꽂혀있는 위치가 일정 구조를 가지고 있기 때문이다. 이렇듯 데이터를 정리하는 방법을 자료구조라고 한다.

 

더 정확히 정의하자면 자료구조는 데이터의 효율적인 접근 및 조작을 가능하게 해주는 데이터의 저장 및 관리 방식 이다. 도서관에서 로미오와 줄리엣을 찾을 수 있었듯이, 특정 데이터를 쉽게 찾고 활용하기 위해서는 특정 구조를 만들어야 한다.

자료구조를 사용하는 이유

set나 list를 예로 들어보자. 1~100000까지 담긴 두 자료형에서 100000을 찾는 명령문을 실행했다.

그 탐색 시간이 set가 더 빨랐다. (직접 해보자)

 

이렇듯 어떤 작업에는 그에 맞는 더 효율적인 구조가 존재한다. (물론 모든 상황에서 set가 더 효율적인 것은 아니다.)

각 상황에 맞는 자료구조가 존재하는 것이다. 그래서 각 상황에 맞는 자료구조를 사용해야만 한다.

반응형