먼저 생각하기 · 기초
al64 predict · Gold 64상태 sequence 변이 관측소: “64상태의 fixed/growable/linked/view 축을 모든 언어에 직접 매핑하고 N/A·copy·backed·borrow 차이를 지운다.” 조건에서 상태·비용·observer 유효성을 실행 전에 봉인한다.
언어 library와 분리된 toy dynamic array D를 예측한다. D는 size 0, capacity 2, epoch 0에서 시작하며 A부터 G까지 일곱 값을 차례로 append한다.
각 append 뒤 size·capacity·누적 reallocation copy 수·epoch을 표로 예측하세요. 한 append의 worst cost와 일곱 append의 amortized 결론을 분리하고, resize 전에 얻은 handle의 상태도 판정하세요.
- append 직전 size=capacity이면 capacity를 정확히 두 배로 늘리고 기존 size개 원소를 새 storage로 복사한 뒤 새 값을 쓴다.
- reallocation copy 수는 기존 원소 복사만 센다. 새 값 일곱 개를 쓰는 비용은 별도다.
- reallocation 때마다 epoch이 1 증가하며 이전 epoch의 모든 storage handle은 stale이 된다.
- capacity가 남아 있는 append는 size만 1 증가시키고 copy 수와 epoch을 바꾸지 않는다.
- toy contract의 결과를 Python list, Java ArrayList, C++ vector의 정확한 growth factor로 일반화하지 않는다.
연습과 같은 문제를 다시 풀어 보는 시간이에요. 힌트 없이 먼저 생각해 보세요. 지금 적은 답은 바로 합격으로 기록되지 않아요.
