배열이란 기본적으로 크기를 바꿀 수 없는 자료구조라고 알고 있지만 사실 모든 배열이 크기를 바꿀 수 없는 것은 아니다.
배열에는 Static Array라고 불리우는 동적배열과 Dynamic Array라고 불리우는 동적배열 두가지가 있다.
기본적인 성질은 배열과 같고 큰 차이가 있다면 배열의 크기를 조절 할 수 있다는 점이다.
동적 배열이란 크기가 고정되어 있지 않은 배열을 의미한다.
우리가 흔히 아는 배열은 Static Array로 정적 배열이다.
정적 배열은 크기가 고정되어 있어서 데이터를 크기 만큼만 저장할 수 있다.
쉽게 생각하면 배열의 크기를 동적으로 늘려서 사용하고 싶은 경우에 필요하다.
간단하며 쉬운 정적 배열과 단리 동적 배열은 크기가 크거나 작아질 경우에 대한 함수를 구현해야 하기 때문에 어려우며 데이터 크기의 변동이 잦게 일어날 경우에 사용한다.
결론부터 말하자면 시간복잡도의 시간이 늘게 된다.
배열의 크기를 넘어설 경우 정적 배열은 데이터의 크기를 추가하는 작업만 하지만 동적 배열은 배열을 늘리고 데이터를 추가하는 두가지 작업을 해야한다.