# 자료구조와 알고리즘의 이해

# 자료구조와 알고리즘이란?

# 자료구조란?

  • 용어: 자료구조, 데이터 구조, data structure
  • 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미
  • 코드상에서 효율적으로 데이터를 처리하기 위해, 데이터 특성에 따라, 체계적으로 데이터를구조화해야 함
    • 어떤 데이터 구조를 사용하느냐에 따라, 코드 효율이 달라짐

# 효율적으로 데이터를 관리하는 예

  • 우편번호: 5자리 우편번호로 국가의 기초구역을 제공
    • 5자리 우편번호에서 앞 3자리를 시, 군, 자치구를 표기, 뒤 2자리ᅟᅳᆫ 일련번호로 구성
  • 학생 관리: 학년, 반, 번호를 학생에게 부여해서, 학생부를 관리
    • XX학년, X반, X번 학생
    • 만약 위 관리 기법이 없다면 3000명 학생 중 특정 학생을 찾기 위해, 전체 학생부를 모두 훑어야 함

# 대표적인 자료구조

  • 배열 스택, 큐, 링크드 리스트, 해쉬 테이블, 힙

현실 세계의 가장 대표적인 데이터 구조? - 사전

# 알고리즘이란?

  • 용어: 알고리즘, algorithm
  • 어떤 문제를 풀기 위한 절차/방법
  • 어떤 문제에 대해, 특정한 ‘입력’을 넣으면, 원하는 ‘출력’을 얻을 수 있도록 만드는 프로그래밍

현실 세계의 가장 대표적인 알고리즘? - 요리 레시피

# 자료구조와 알고리즘이 중요한 이유

  • 어떤 자료구조와 알고리즘을 쓰느냐에 따라, 성능이 천지차!

결국 프로그래밍을 잘 할 수 있는 기술과 역량을 익히고, 검증할 수 있음

# 자료구조/알고리즘, 그리고 파이썬

  • 어떤 언어로든 자료구조/알고리즘 익힐 수 있음
    • 이전에는 무조건 C or C++로만 작성하도록 하는 경우가 많았음
    • 최근에는 언어로 인한 제약/평가는 없어짐
      • 가장 쉽고 빠르게 자료구조/알고리즘을 익힐 수 있는 언어: 파이썬

현업에서도 파이썬은 많이 사용됨
~나는 자바를 더 많이 쓴다~

# 강의 준비

  • 파이썬/주피터 노트북 설치 필요
Last Updated: 6/18/2023, 2:13:15 PM