Data structures1 Gap buffer 텍스트 편집기를 구현하려고합니다. 글자들을 배열에 나열했다고 상상해봅시다. 편집기에서 글을 쓰면서 글자 삽입, 삭제가 빈번하게 일어납니다. 일반적으로는 삽입 및 삭제가 일어날 때마다 삽입 및 삭제된 위치의 다음 데이터들이 한 칸씩 밀리거나 당겨지는 작업이 수행되므로 O(N)의 시간이 소요될 것입니다. 여기서 더 효율적으로 개선할 방법이 있을까요? 우선, 텍스트 편집기는 현재 커서 근처에서 삽입 및 삭제가 빈번하게 일어날 확률이 높습니다. Gap buffer는 이러한 특성에 효율적인 자료구조입니다. 작동 방식 먼저 사용할 공간들을 확보합니다. 이렇게 확보된 공간을 Gap이라고 부릅니다. HELD를 입력해봅시다. 현재 커서에서 바로 글자를 삽입하여 O(1)의 시간이 소요됩니다. 여기서 HELD를 HELLOW.. 2023. 3. 30. 이전 1 다음