
📌강의를 시작하기 앞서.. 자료구조와 알고리즘을 처음 배울 때 어렵게 느껴지는 부분이 많습니다. 쉽게 이해되지 않는 부분은 종이에 그림을 그려가며 깊이 이해해보면 좋겠습니다. 때로는 구현이 너무 어려울 때도 있을겁니다. 이런 생각이 든다면 그 부분의 구현은 건너띄

✏️ Array 배열을 이해하기 위해서는 배열이 메모리에서 어떤 모습을 하고 있는지 알아야 합니다. 일반적으로 프로그래밍 언어에서는 배열을 선언할 때 배열의 크기를 알려줍니다. (int[] arr = new int[10]) 이런식으로 배열을 선언했다면 운영체제는 메

✏️ Stack 스택은 LIFO 규칙을 가지고 있는 리스트입니다. LIFO란, Last In, First Out 입니다. 나중에 들어온 데이터가 먼저 나가는 규칙입니다. 즉 먼저 들어온 데이터가 나중에 나가는 구조입니다. 일상 생활 예시로는 책을 쌓아놓으면 가장 위에

✏️ HashTable 
✏️ Tree 9번 노드의 자식은 11번, 11번의 자식 노드는 8, 1, 4번이 됩니다. 
AVL Tree 개념 balance factor란 오른쪽 서브 트리의 높이와 왼쪽 서브 트리의 높이차를 말합니다. 지난 시간에 Binary Tree의 시간 복잡도는 O(logn) 걸린다고 했지만 사실 아닙니다. 아래와 같은 상황이라면 logn이 아니라 O(n) 만큼

✏️ B Tree 개념 기존의 BST는 자녀 노드가 최대 2개였습니다. 그러나 자녀 노드를 세 개까지 가지고 싶다면 어떻게 해야 할까요? 왼쪽 자녀 노드들은 부모 노드보다 작은 값으로, 오른쪽 자녀 노드들은 부모 노드보다 큰 값으로 정했던 것처럼 특정한 두 값을 기

✏️ Red-Black Tree 개념 이때 BST의 worst case는 한 쪽으로 편향된 트리의 탐색입니다. 즉, O(N)이 걸리는 상황을 말합니다. 따라서 Red-Black Tree는 O(logN)이 나올 수 있도록 수정한 BST라고 볼 수 있습니다. Red-B