자료구조 01 : 배열 (array)

2022. 9. 21. 21:06자료구조 및 알고리즘

파이썬의 리스트(list) 타입.

딱 그게 배열을 다 설명해준다.

 

유사한 데이터를 연결된 데이터 공간에

넣을 수 있는 것이 배열이다.

좀 더 구체적으로 이야기하자면 데이터를 나열하고,

각 데이터를 인덱스에 대응하도록 구성한

데이터 구조배열이라고 한다.

 

배열의 장단점을 말하여라

와 같은 질문이 면접에서 CS기본 지식을 묻는

문제로 질문이 나올 수 있다.

평소에 너무 당연하게 쓰고 있는 부분이라

이런 질문을 갑자기 받으면 당황스러울

수 있는데 배열의 장단점을 아래와 같다.

 

장점 : 인덱스(번호)가 있어 원하는 데이터로의

빠른 접근이 가능하다.

 

단점 : 가변적인 데이터의 경우 데이터

추가/삭제가 번거롭거나 어렵다.

삭제를 하는 경우 삭제 후 중간에 빈 공간이

없도록 뒤에 있는 데이터를 당겨와줘야 하고,

데이터를 추가하고 싶은 경우에는 데이터 공간을

따로 마련을 해서 다시 배열해줘야 한다.

 

파이썬만 사용했다면 크게 못 느낄 수 있다.

하지만 C언어만 하더라도 미리 최대 길이를

지정해놓고 그 이상은 쓰지 못하기 때문에

크게 와닿는 부분이지 않을까 싶다.

 

 

다시 한번 강조하지만 배열은

맨 앞의 주석과 그곳으로부터 얼마나

떨어져 있는지만 알면 어느 데이터로든

바로 접속이 가능하다. 얼마나 떨어져

있는지는 인덱스로 나타낸다.

최대 길이를 알지 못하면 데이터 추가에

상당한 어려움이 있으며 데이터를 삭제할

때에도 뒤에 남은 데이터를 앞으로 당겨야

하는 단점이 존재한다.