자료구조란

  • 용어 : 자료 구조, 데이터 구조, data structure

  • 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미

  • 코드상에서 효울적으로 데이터를 처리하기 위해, 데이터 특성에 따라, 체계적으로 데이터를 구조화해야함

    → 어떤 데이터 구조를 사용하느냐에 따라, 코드 효율이 달라짐

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

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

대표적인 자료 구조

  • 배열
  • 스택
  • 링크드 리스트
  • 해쉬 테이블
  • 등등

알고리즘이란

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

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

  • 어떤 자료 구조와 알고리즘을 쓰느냐에 따라, 성능이 천지차이
  • 결국 프로그래밍을 잘 할 수 있는 기술과 역략을 익히고, 검증할 수 있음

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

  • 어떤 언어로든 자료 구조/알고리즘 익힐 수 있음
    • 이전에는 무조건 C, C++ 로만 작성하도록 하는 경우가 있었음
    • 최근에는 언어로 인한 제약/평가는 없음
      • 가장 쉽고 빠르게 자료 구조/알고리즘을 익힐 수 있는 언어 : 파이썬(Python)
profile
dev_pang의 pang.log

0개의 댓글