자료구조 - 배열

목차


Data Structure

왜 자료구조를 알아야 할까?

원하는 데이터를 가장 효율적으로 탐색하는 방법이 알고리즘이라면, 자료구조는 그런 탐색이 용이하도록 돕는 인프라라고 생각한다.


위의 이미지처럼 정리되어 있으면 특정 음료수를 찾으라고 할 때, 쉽게 찾을 수 있다.

위와 같은 식료품 매장에서 우유를 찾는다고 가정해보자. 다음과 같은 절차를 통해 우유를 찾을것이다.

  1. 먼저 음료가 모아진 코너를 간다.
  2. 그리고 유제품끼리 정렬된 쪽으로 간다.
  3. 제조사에 맞춰 우유를 찾는다.

위의 절차가 알고리즘이라고 생각한다. 그리고 사진 속처럼 같은 제품으로 분류한 방식이 자료구조인 셈이다. 따라서 자료구조는 알고리즘을 공부하기 위해서 반드시 필요한 개념이라고 할 수 있다.


자료 구조는 크게 배열과 리스트가 있다. 배열부터 살펴보도록 하자.


Array

배열은 비슷한 속성을 갖는 데이터끼리 패키징하는 방식의 Data Structure(자료 구조)이다. 연관된 데이터끼리 묶기 때문에 데이터가 많아졌을 때 데이터를 찾기에 용이하다는 장점이 있다.

프로그래밍에서 배열을 사용하면 다음과 같다. 언어는 Java를 사용했다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class DataStructureEx {
public static void main() {
String country[][] = {
{"Korea", "Japan", "China", "india", "Vietnam"},
{"Canada", "United States", "Mexico", "Costa-Rika"},
{"Brazil", "Argentina", "Chile", "Uruguay", "Colombia"},
{"France", "United Kingdom", "Italy", "Germany", "Netherland"},
{"Ghana", "South Africa", "Nigeria", "Egypt", "Cameroon"}
};

// 영국 출력
System.out.println(country[3][1]);
}
}

String형 2차 배열 country[][]를 생성했다. 코드를 보면 알겠지만, country[1][]은 Asia 국가들로만, country[2][]은 북중미 국가들로만 묶는 식으로 대륙별 2차 배열을 생성했다. 이렇게 데이터를 분류하면 총 25개의 국가이지만 빠르게 국가를 찾을 수 있다. 물론 데이터가 많아질수록 배열로 인한 편리함은 극대화된다.


잠깐, 배열을 구성하는 요소는 어떻게 구성되어 있는걸까?


Element

데이터의 가장 작은 구성 단위를 요소, Element라고 한다. Element는 value(값)와 index(인덱스)로 구성되는데, 여기서 중요한 개념이 index이다. index는 해당 전체 데이터에서 element를 나타내는 식별자이다.

Element(요소) = Index(인덱스) + Value(값)

출처 : 생활코딩


자 이제 배열과 함께 자료구조로 쓰이는 리스트에 대해 알아보도록 하자.



자료구조 글 목록