[자료구조] 배열

개발잘하기프로젝트·2020년 11월 8일
0
post-thumbnail

🤔 배열?

배열은 데이터를 나열하고, 각 데이터를 인덱스(index)에 대응하도록 구성한 데이터 구조이다. 배열은 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 자료구조를 말한다. 즉, 배열의 요소 혹은 원소(element)는 하나의 데이터 타입으로 통일되어 있으며 서로 연속적으로 인접해 있다(dense array).

배열은 왜 필요할까?

같은 종류의 데이터를 효율적으로 관리하기 위해 사용한다.
같은 종류의 데이터를 순차적으로 저장한다(index).

배열의 장점은?

빠른 접근이 가능하다. 배열에서 각각의 원소들은 index의 번호가 존재하기 때문에 찾고자 하는 원소의 index값을 알고 있으면 해당 원소로 빠르게 접근할 수 있다(random access).

배열의 단점은?

정해진 데이터의 크기를 갖는다. 예를 들어서 추가하려면 기존 공간에 연결을 시켜서 만들어야 한다. 최악의 경우에는 새로운 배열을 생성해야하는 단점이 있다. 즉, 데이터를 변경(추가 / 삭제)가 쉽지 않다.

C언어의 경우 배열의 최대 길이를 미리 지정해야 한다.

1차원 배열 표현

# python
data = [1, 2, 3, 4, 5]
// javascript
const array = [1, 2, 3];

2차원 배열 표현

# python
data = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
print(data[0]) # [1, 2, 3]
print(data[0][0]) # 1
// javascript
const array = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];

console.log(array[0]); // [1, 2, 3]
console.log(array[0][0]); // 1

💡 정리

  • 유사한 데이터를 연결된 데이터 공간에 넣을 수 있는 것이 배열이다.
  • 맨 앞의 주소에서 얼마나 띄웠는지 알면 바로 원하는 값을 찾을 수 있다.
  • 단점은 최대 길이를 알지 못하면 추가하는데 어려움이 있고, 배열 가운데의 데이터를 삭제할 경우 기존에 있던 뒤의 데이터를 앞으로 당겨야한다.

📝 참고

Github - JaeYeopHan/Interview_Question_for_Beginner
Poiemaweb - 배열

profile
🏠 ☕️ 🎞 🌿 + 🧑🏻‍💻

0개의 댓글