자료구조, 데이터 구조, data structure 모두 같은 의미이다.
- 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미
- 코드상에서 효율적으로 데이터를 처리하기 위해, 데이터 특성에 따라 체계적으로 데이터를 구조화해야한다.
=> 어떤 데이터 구조를 사용하느냐에 따라, 코드 효율이 달라짐
효율적으로 데이터를 관리하는 예
** 우편번호 : 5자리 우편번호로 국가의 기초구역을 제공
=> 5자리 우편번호에서 앞 3자리는 시, 군, 자치구를 표기, 뒤 2자리는 일련번호로 구성
** 학생 관리: 학년, 반, 번호를 학생에게 부여해서, 학생부를 관리
=> XX학번, X반, X번 학생
=> 만약 위 관리 기법이 없다면... 3000명 학생중 특정 학생을 찾기 위해, 전체 학생부를 모두 훑어야 함
대표적인 자료구조
배열(Array), 스택(Stack), 큐(Queue), 링크드 리스트(Linked List), 해쉬 테이블(Hash table), 힙(Heap) 등이 있는데요.
이어지는 포스팅에서 자세히 설명하겠습니다.
흔히 말하는 개발을 잘하기 위해서 알아야 하는 것들에는 자료구조, 알고리즘이 빠지지 않죠.
알고리즘(Algorithm)이란?
어떤 문제를 풀기 위한 절차/방법을 말합니다.
어떤 문제에 대해, 특정한 '입력'을 넣으면, 원하는 '출력'을 얻을 수 있도록 만드는 프로그래밍이죠.
[ 자료구조와 알고리즘이 중요한 이유 ]
어떤 자료구조와 알고리즘을 쓰느냐에 따라, 성능이 천지차!
=> 결국 프로그래밍을 잘 할 수 있는 기술과 역량을 익히고, 검증할 수 있음
[ 자료구조/알고리즘, 그리고 파이썬 ]
어떤 언어로든 자료구조/알고리즘 익힐 수 있긴합니다.
또한, 이전에는 무조건 C 또는 C++ 로만 작성하도록 하는 경우가 많았으나
최근에는 언어로 인한 제약/평가는 없어지는 추세이지만, 가장 쉽고 빠르게 자료구조, 알고리즘을 익힐 수 있는 언어는 파이썬입니다.
Reference
https://fastcampus.co.kr/dev_online_algo
알고리즘 / 기술면접 완전 정복 올인원 패키지 Online. | 패스트캠퍼스
오직 개발자 취업을 위해 만든 알고리즘/기술면접 완벽 대비 강의
fastcampus.co.kr
'Data structure' 카테고리의 다른 글
스택(Stack) [자료구조] (0) | 2021.10.18 |
---|---|
큐(Queue) [자료구조] (0) | 2021.10.18 |
배열 [자료구조] (0) | 2021.10.18 |
트리 구조 (Tree) (0) | 2021.07.26 |