훌륭해요!
정답률 93%
문제별 결과
원형 큐(Circular Queue)는 배열의 끝과 시작이 연결된 형태이다.
원형 큐는 배열의 마지막 인덱스 다음이 첫 번째 인덱스가 되어 배열 공간을 효율적으로 사용합니다. front와 rear 포인터로 관리합니다.
체이닝(Chaining)은 해시 충돌을 연결 리스트로 해결하는 방법이다.
체이닝은 같은 해시 값을 가진 원소들을 연결 리스트로 연결하여 저장하는 해시 충돌 해결 방법입니다.
덱(Deque)은 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조이다.
덱(Double-Ended Queue)은 앞(front)과 뒤(rear) 양쪽에서 삽입과 삭제가 가능한 자료구조로, 스택과 큐의 기능을 모두 포함합니다.
배열의 중간에 원소를 삽입하면 O(n)의 시간이 소요된다.
중간에 삽입하려면 삽입 위치 이후의 모든 원소를 한 칸씩 뒤로 이동시켜야 하므로 O(n)입니다.
스택의 push와 pop 연산의 시간복잡도는 O(1)이다.
push는 스택 맨 위에 삽입, pop은 스택 맨 위에서 삭제하므로 둘 다 O(1)입니다.
AVL 트리는 모든 노드에서 왼쪽과 오른쪽 서브트리의 높이 차이가 최대 1인 이진 탐색 트리이다.
AVL 트리는 자가 균형 이진 탐색 트리로, 균형 인수(Balance Factor)가 -1, 0, 1 중 하나여야 합니다. 이를 통해 O(log n) 탐색을 보장합니다.
무방향 그래프에서 정점이 n개이면 최대 간선 수는 n(n-1)개이다.
무방향 그래프에서 최대 간선 수는 n(n-1)/2개입니다. 방향 그래프에서 최대 간선 수가 n(n-1)입니다.
인접 리스트(Adjacency List)는 인접 행렬보다 항상 공간 효율적이다.
간선이 매우 많은 밀집 그래프(dense graph)에서는 인접 행렬이 더 효율적일 수 있습니다. 인접 리스트는 희소 그래프(sparse graph)에서 유리합니다.
연결 리스트(Linked List)는 각 노드가 다음 노드의 주소를 저장한다.
연결 리스트의 각 노드는 데이터와 다음 노드를 가리키는 포인터(참조)를 포함합니다.
연결 리스트에서 특정 인덱스의 원소를 접근하는 시간복잡도는 O(1)이다.
연결 리스트는 순차 접근(Sequential Access)만 가능하므로, 특정 인덱스의 원소를 찾으려면 처음부터 순회해야 하여 O(n)입니다.
완전 이진 트리(Complete Binary Tree)는 마지막 레벨을 제외한 모든 레벨이 완전히 채워져 있다.
완전 이진 트리는 마지막 레벨을 제외한 모든 레벨이 꽉 차 있고, 마지막 레벨은 왼쪽부터 채워진 트리입니다.
스택은 함수 호출의 관리(콜 스택)에 사용된다.
프로그램의 함수 호출 시 반환 주소, 지역 변수 등이 콜 스택에 push되고, 함수 종료 시 pop됩니다.
유니온-파인드(Union-Find)는 서로소 집합을 관리하는 자료구조이다.
유니온-파인드(Disjoint Set)는 합집합(Union)과 찾기(Find) 연산을 효율적으로 지원하며, 경로 압축과 랭크 기반 합치기로 거의 O(1)에 가까운 성능을 제공합니다.
이진 탐색 트리(BST)에서 왼쪽 자식은 부모보다 작고, 오른쪽 자식은 부모보다 크다.
BST의 속성: 왼쪽 서브트리의 모든 노드 값 < 부모 노드 값 < 오른쪽 서브트리의 모든 노드 값입니다.
최소 힙(Min Heap)에서 루트 노드는 전체 트리에서 가장 작은 값을 가진다.
최소 힙은 부모 노드의 값이 자식 노드의 값보다 항상 작거나 같은 완전 이진 트리입니다. 따라서 루트가 최솟값입니다.