자료구조(Data Structure)란?
- 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미한다.
- 코드상에서 효율적으로 데이터를 처리하기 위해, 데이터 특성에 따라, 체계적으로 데이터를 구조화해야한다.
- 어떤 데이터 구조를 사용하느냐에 따라 코드 효율이 달라진다.
효율적인 데이터 관리 예제
우편번호
- 5자리로 국가의 기초 구역을 제공한다.
- 앞 3자리는 시, 군, 자치구를 표기하고 뒤 2자리는 일련 번호로 구성된다.
학생 관리
- 학년, 반, 번호를 학생에게 부여해서 학생부를 관리한다.
- XX학년, X반, X번 학생
- 만약 관리 기법이 없다면, 여러명의 학생 중 특정 학생을 찾기 위해 전체 학생부를 모두 훑어야 한다.
대표적 자료구조
- 배열
- 스택
- 큐
- 연결 리스트
- 해쉬 테이블
- 힙
현실 세계의 가장 대표적인 데이터 구조는 사전이다.
알고리즘(Algorithm)이란?
- 어떤 문제를 풀기 위한 절차나 방법이다.
- 어떤 문제에 대해 특정한 입력을 넣으면, 원하는 출력을 얻을 수 있도록 만드는 프로그래밍이다.
현실 세계의 가장 대표적인 알고리즘은 백종원 레시피이다.
자료구조와 알고리즘이 중요한 이유
- 어떤 자료구조와 알고리즘을 쓰느냐에 따라 성능이 천지차이이다.