자료구조&알고리즘

민선규·2023년 2월 16일

코딩테스트

목록 보기
1/20
post-thumbnail

자료구조란

사전적인 의미는 자료(Data)의 집합의 의미하며, 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것이다.
자료구조는 다음 그림과 같이 단순 자료구조(Primitive Data Structure)와 복합 자료구조(Non-Primitive Data Structure)로 나누어 진다.

복합 자료구조는 다시 선형 자료구조(Linear Data Structure)와 비선형 자료구조(Non-Linear Data Structure)로 구분된다.

선형 자료구조

선형 자료구조는 다음 그림처럼 데이터 요소를 순차적으로 연결하는 자료구조로, 구현하기 쉽고 사용하기도 쉽습니다. 배열(Array)과 링크드 리스트(Linked List), 스택(Stack), 큐(Queue) 등이 여기에 해당합니다.

비선형 자료구조

비선형 자료구조는 선형 자료구조와 달리 데이터 요소를 비순차적으로 연결한다. 다음과 같이 한 데이터 요소에서 여러 데이터 요소로 연결되기도 하고, 여러 데이터 요소가 하나의 데이터 요소로 연결되기도 한다.
트리와 그래프가 바로 여기에 해당한다. 비선형 자료구조는 선형 자료구조와 달리 데이터 요소를 비순차적으로 연결한다.

ADT(Abstract Data Types))

자료구조의 동작 방법을 표현하는 데이터 형식으로 자료구조가 갖춰야 할 일련의 연산이다.

자료구조를 배우는 이유

  • 자료구조의 내부를 이해하면 라이브러리에서 엉뚱한 자료구조를 선택하는 일을 피할 수 있다.
  • 자료구조는 알고리즘이 데이터를 효율적으로 사용할 수 있게 도와주는 핵심 부품 역할을 하기 때문이다.

알고리즘이란

알고리즘은 어떤 문제를 풀기 위한 단계적 절차를 뜻한다. 알고리즘을 설계한다는 것은 문제 풀이 절차를 설계한다는 의미이고, 알고리즘을 구현한다는 것은 프로그래밍 언어를 이용해서 문제 풀이 절차를 실제로 동작하는 코드로 작성한다는 의미이다.

참고 문서 및 링크

0개의 댓글