자료 구조와 알고리즘
가변 길이 배열에서, 용량이 가득 찼을 때 원소를 추가하면 2배 용량의 영역을 새로 확보하여 모든 원소를 복사한다. 용량 1인 빈 배열에 원소를 하나씩 1,000개 추가했을 때, 복사되는 원소의 총수는?
- A10
- B1,023
- C499,500
정답과 해설 보기
정답: B. 1,023
용량은 1, 2, 4, …, 512로 가득 찰 때마다 2배가 되고, 그때마다 그 시점의 원소를 복사하므로 복사의 총수는 1 + 2 + 4 + … + 512 = 1,023입니다. 1,000개의 추가에 대해 복사는 원소 수의 약 1배이므로 추가 1회당 수고는 평균하면 일정, 즉 분할 상환 O(1)이 됩니다. 용량을 1씩만 늘리면 복사는 1 + 2 + … + 999 = 499,500이 되어 O(n²)입니다. 10은 영역을 다시 확보한 횟수이며, 복사되는 원소의 수가 아닙니다.