기회는 준비된 자에게 온다 !!

개요

무작정 자료구조를 암기하는 것이 아니라 제대로 이해하는 데에 초점이 있다.

코드를 처음 작성하는 사람들은 자료구조나 알고리즘에 대한 이해가 ‘필요없다’.

단지 코드가 굴러가게 만드는 것이 급선무이기 때문!


하지만 그 단계를 넘어서게 되면 1) 관리하기 편하고 2) 다른 사람들과 일하기 편하게 다듬는 과정이 필수적이다. 또 코드 실행시간을 단축시키고 메모리 공간을 효율적으로 사용하기 위해서 자료 구조 및 알고리즘은 반드시 알아야한다.

알고리즘이란?

알고리즘(algorithm)이란 여러 개의 지시 사항을 말한다.

즉, 어떠한 액션을 수행하기 위해 컴퓨터가 수행해야하는 것들이다.

예를 들어 매우 효율적인 알고리즘을 찾으면 우리는 그것을 반복적으로 사용할 수 있다.


실생활을 예로 들면, 지도 앱을 열어서 목적지까지 가는 path finder 알고리즘, 이미지 손상을 최소화하면서 파일 크기를 감소시키는 압축 알고리즘, 암호화 하는 암호 알고리즘 등이 존재한다.

자료구조란?

자료구조(data structure)는 데이터를 정리하는 방법을 말한다.

이는 프로그램의 스피드에 크게 연관이 되어있다.

예를 들어 어떤 자료 구조는 정렬(sorting)하는 것에 최적화 되어 있고 검색, 추가, 편집에 최적화된 자료 구조가 있다.


따라서 1) 어떤 작업에 2) 어떤 자료 구조를 3) 언제 4) 어떻게 사용하는지 아는 것이 해당 프로그램의 스피드를 결정하게 된다.

4가지의 운용 상황에 맞춰서 각 자료 구조에 대한 이해도가 있어야 한다.

  1. 검색
  2. 읽기
  3. 추가
  4. 삭제

위 4가지 상황을 염두하고 자료 구조를 보면 어떤 상황에 어떤 자료구조를 이용해야 하는 지 알 수 있다.

앞으로 공부할 내용 정리

  1. 자료구조와 알고리즘의 정의
  2. 배열
  3. 스택
  4. 링크드리스트
  5. 알고리즘 복잡도 표현 기법
  6. 해쉬
  7. 트리

참고

Leave a comment