ABOUT ME

B급 개발자 이야기, 인생은 B 컷이 전부다.

Today
Yesterday
Total
  • [학습] 자료구조와 알고리즘
    개발 2021. 3. 24. 08:06
    반응형

    자료구조란?

     

    • 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미
    • 코드상에서 효율적으로 데이터를 처리하기 위해, 데이터 특성에 따라, 체계적으로 데이터를 구조화해야 함

     

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

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

     

    대표적인 자료구조

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

    현실 세계의 가장 대표적인 자료 구조

    • 사전

     

    알고리즘이란?

    • 어떤 문제를 풀기 위한 절차 혹은 방법
    • 어떤 문제에 대해서 특정한 '입력'을 넣으면 원하는 '출력'을 얻을 수 있도록 만드는 방법
    • 고려사항
      • 시간 (얼마의 시간이 걸리는가?)
      • 공간 (얼마의 저장 공간을 차지하는가?)

    현실 세계의 가장 대표적인 알고리즘

    • 요리 레시피 (백종원 레시피 등)

     

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

    • 어떤 자료구조와 알고리즘을 쓰느냐에 따라서 성능이 차이난다.

     

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

     

    무엇을 활용하여 어떻게 배울 수 있는가?

    • 어떤 언어로든 자료구조/알고리즘을 익힐 수 있다.
    • 이전에는 무조건 C/C++로만 작성하도록 하는 경우가 많았다.
    • 최근에는 언어로 인한 제약/평가는 없어졌다.
      • 요즘 가장 쉽고 빠르게 자료구조/알고리즘을 익힐 수 있는 언어로 파이썬이 각광받음
      • 협업에서도 파이썬은 많이 사용됨.

     

    반응형
Designed by Tistory.