Relax the constraint that the size of the array we use equals N
"Roughly" means throw away constant factors when making approximations
Add to end unless length equals size, we're out of space.
In a static array, we have to allocate a new array of size N + 1 when
adding one element.
In contrast, a dynamic array we allocate a new array of the original size plus
some constant. It's approximately the same as a static array because we don't use
constants in approximations.
Constant amoritization analysis averages the running times of operations
in a sequence over that sequence