
우선, Array 자료구조의 장점과 단점부터 알아보겠습니다.장점은 '조회'와 '추가'에 대한 시간 복잡도가 O(1)이라는 것 입니다. 따라서, 잦은 조회나 추가 작업이 예상될 경우 해당 자료구조를 사용하는 것이 유리합니다.다만, 추가의 경우 마지막 인덱스에 추가하는 경

Array와 Dynamic Array의 차이점은 기존에 할당한 크기 이상의 데이터를 보관하기 위한 'resize 작업에 대한 수행 여부'입니다. Dynamic Array의 경우 한계를 넘어서는 데이터 추가가 이루어질 경우 resize 작업을 수행하여 이를 보관합니다.장

장점은 데이터 추가, 삭제에 대한 시간 복잡도가 O(1)이라는 것입니다. 또한, 높은 메모리 효율성 가지고 있습니다.하지만, Linked List는 Node라는 구조체로 이루어져 있는데 이는 Data와 Address에 대한 정보를 가지고 있습니다. Array와 달리 A

차이점 메모리 Array는 연속된 메모리 공간에 데이터를 저장하며 크기가 불변하다. 하지만, Linked List는 연속된 공간이 아닌 데이터 삽입시 동적으로 메모리 할당이 이루어지며 크기가 가변적이다. 즉, Array와 달리 Linked List는 메모리를 자유롭고

특징 데이터를 선입선출(FIFO) 기반으로 관리하는 자료구조입니다. 즉, 먼저 추가된 데이터가 먼저 삭제되는 것을 의미합니다. 이때, 데이터 추가(euqueue)와 삭제(dequeue) 연산은 O(1)의 시간복잡도를 가지고 있습니다. 구현 방법 Queue를 구현하는

특징 데이터를 후입선출(LIFO) 기반으로 관리하는 자료구조입니다. 즉, 최근에 추가된 데이터의 우선순위가 가장 높음을 의미합니다. 이때, 데이터 추가(Push)와 삭제(Pop) 연산은 O(1)의 시간복잡도를 가지고 있습니다. Stack은 세로 형태의 긴 막대로 표현

우선, Queue를 구현하기 위해서 생각해 볼 것은 두 자료구조의 차이를 생각해야 합니다. Stack은 후입선출, Queue는 선입선출 방식을 가지고 있습니다. 즉, 어떤 조회/삭제 연산에을 선입선출 방식으로 변환하면 됩니다.이를 위해 다음과 같이 수행하고자 합니다.위

우선, Stack을 구현하기 위해서 생각해 볼 것은 두 자료구조의 차이를 생각해야 합니다. Queue는 선입선출, Stack은 후입선출 방식을 가지고 있습니다. 즉, 조회/삭제 연산을 후입선출 방식으로 변환하면 됩니다.위 과정을 통해 Pop 연산 수행 전 Queue A

Priority Queue는 선입선출 방식을 가지는 Queue와 달리 사용자가 정의한 우선 순위 조건에 의해 가장 먼저 조회/삭제가 이루어지는 데이터가 정해지는 자료구조입니다. Queue는 Enqueue, Dequeue에 대하여 O(1)의 시간복잡도를 가지지만, Pri

이진 트리 vs 완전 이진 트리 이진 트리는 모든 노드는 최대 2개의 자식 노드를 가질 수 있다는 특징이 있습니다. 이를 기본으로 '마지막 레벨을 제외한 모든 노드가 존재', '노드는 왼쪽에서 오른쪽 방향으로 추가'를 추가로 만족하게 되면 완전 이진 트리가 됩니다. 즉

Hash Table은 효율적인 탐색을 위한 자료구조입니다. 데이터는 (key, value) 형태로 저장되며, Hash Function 결과인 h(key)를 인덱스로 사용하여 Slot(Bucket)에 데이터를 저장합니다. 이는 추가, 삭제, 조회 연산에서 평균적으로 O(

Segment Tree는 구간 혹은 범위에 대한 빠른 Query를 처리하기 위해 사용하는 자료구조이며, 구간 정보를 이진 트리 구조로 저장합니다. 이를 통해, 구간 합이나 최솟값(최댓값) 등을 $log_n$ 시간에 계산할 수 있습니다.어떻게 사용하는지에 대한 이해를 돕