[Data Structure] Introduction

pitbull terrier·2020년 6월 8일
0

Data Structure

목록 보기
1/6

1. What is Data Structure?


Data Structure(자료 구조)란?

  • 자료 구조란 데이터에 편리하게 접근하고 조작하기 위한 데이터를 저장하거나 조직하는 방법입니다.
  • 자료 구조의 종류에는 여러가지가 있습니다. 하지만 모든 목적에 부합하는 자료구조는 없습니다. 따라서 각각의 자료구조가 갖는 장점과 한계를 잘 이해하고 상황에 맞게 올바른 자료 구조를 선택하고 사용하는 것이 중요합니다.
  • 자료구조는 언어별로(ex. JavaScript, Python...) 지원하는 양상이 다릅니다.
  • 각 언어가 가진 자료구조의 종류와 그것에 대한 사용 방법을 익히는 것이 중요하지만, 무엇보다 각 자료구조의 본질과 컨셉을 이해하고 상황에 맞는 적절한 자료 구조를 선택하는 것이 중요합니다.
  • 언어별로 지원하는 자료구조의 양상이 다르더라도 개념을 올바르게 이해한다면 해당 언어에 맞추어서 사용하기만 하면 됩니다.

2. Why Data Structure?


  • 자료구조가 무엇인지 좀 더 쉽게 이해하기 위해 일상에서 찾아볼 수 있는 예시를 들어보겠습니다.
  • 여성분들이 화장품을 담기에 효율적인 것은? 캐리어? 백팩? 에코백? 파우치?
  • 정답은 파우치 입니다! (물론 엄청나게 많이 들고 다니려면 더 큰 가방이 필요하겠지만.. 일반적으로!)
    화장품 몇 개 담으려고 캐리어를 갖고 다닌다면 무겁고 짜증나고 생각만해도 정말 비효율적이네요🤬
  • 그렇다면 캐리어는 언제 사용하는게 좋을까요? 해외 여행 가는 경우처럼 많은 양의 짐을 한번에 이동 시켜야 하는 경우에 가장 효율적인 가방이 캐리어 입니다.
  • 이처럼 자료구조란, 상황과 문맥에 맞게 데이터를 담을 수 있는 적절한 구조를 말합니다.
  • 화장품을 담기 위해 캐리어를 사용하는 것은 큰 수고를 불러오는 것 처럼,
  • 데이터에 맞는 적절한 자료 구조를 사용하는 것은 전체 개발 시스템에 굉장히 큰 영향을 끼칩니다.

*"코딩은 알고리즘과 자료구조, 이 두가지로 이루어진다"

  • 리누스 토르발스

3. 자료 구조의 분류


  • Primitive Data Structure(단순 구조)
    : 프로그래밍에서 사용되는 기본 데이터 타입
  • None-Primitive Data Structure(비단순 구조)
    : 단순한 데이터를 저장하는 구조가 아니라 여러 데이터를 목적에 맞게 효과적으로 저장하는 자료 구조
    - Linear Data Structure(선형 구조)
    : 저장되는 자료의 전후 관계가 1:1 (ex. List, Stacks, Queues)
    - Non-Linear Data Structure(비선형 구조)
    : 데이터 항목 사이의 관계가 1:n 또는 n:m (ex. Graphs, Trees )

4. 일반적으로 가장 자주 사용 되는 자료 구조


  • Array(Python에서는 List)
  • Tuple
  • Set
  • Dictionary
  • Stack & Queue
  • Tree
profile
yoonbitnara.github.io

0개의 댓글