1.쉬움
"후입선출"(LIFO) 원칙으로 동작하는 자료 구조는 무엇입니까?
- A해시 테이블(Hash table)
- B큐(Queue)
- C스택(Stack)
- D연결 리스트(Linked list)
2.쉬움
이진 트리의 후위 순회(postorder)는 노드를 어떤 순서로 방문합니까?
- A왼쪽 서브트리, 오른쪽 서브트리, 노드
- B오른쪽 서브트리, 노드, 왼쪽 서브트리
- C노드, 왼쪽 서브트리, 오른쪽 서브트리
- D왼쪽 서브트리, 노드, 오른쪽 서브트리
3.쉬움
트리의 높이는 일반적으로 어떻게 정의됩니까?
- A루트에서 리프까지 가장 긴 경로의 간선 수
- B트리의 리프 수
- C루트와 모든 리프를 포함한 트리의 전체 노드 수
- D루트의 자식 수
4.보통
원소가 n개인 배열의 중간에 원소를 삽입하는 비용은 얼마입니까?
- A뒤의 원소들을 이동시켜야 하므로 O(n)
- B인덱스를 알고 있으므로 O(1)
- C각 원소가 n번 이동하므로 O(n²)
- D이진 탐색 때문에 O(log n)
5.보통
큐를 스택 두 개로 구현합니다. "in" 스택에 push하고 "out" 스택에서 pop하며, "out"이 비면 "in"에서 다시 채웁니다. 연산당 분할 상환 비용은 얼마입니까?
- AO(n²)
- BO(n)
- CO(log n)
- DO(1)
6.보통
이진 최소 힙에서 extract-min은 어떻게 동작합니까?
- A루트를 제거하고 모든 원소를 왼쪽으로 한 칸씩 이동시킨다
- B마지막 원소를 루트로 옮기고 아래로 내린다
- C배열의 마지막 원소를 제거한다
- D모든 리프에서 새로운 최솟값을 찾는다
7.어려움
크러스컬의 최소 신장 트리 알고리즘에서 union-find 구조는 무엇에 사용됩니까?
- A간선의 두 끝점이 이미 연결되어 있는지 확인하는 것
- B탐색 중 각 정점의 출발점으로부터의 현재 거리를 저장하는 것
- C간선을 가중치순으로 정렬하는 것
- D시작 정점을 고르는 것
8.어려움
배열에서 크기 k인 모든 윈도우의 최댓값을 전체 O(n)에 계산할 수 있게 하는 구조는 무엇입니까?
- A윈도우마다 다시 만드는 최소 힙
- B이동으로 갱신하는 정렬된 배열
- C윈도우 원소들의 단일 연결 리스트
- D값의 내림차순으로 인덱스를 담는 덱
정답표
- 1. C · 스택(Stack)
- 2. A · 왼쪽 서브트리, 오른쪽 서브트리, 노드
- 3. A · 루트에서 리프까지 가장 긴 경로의 간선 수
- 4. A · 뒤의 원소들을 이동시켜야 하므로 O(n)
- 5. D · O(1)
- 6. B · 마지막 원소를 루트로 옮기고 아래로 내린다
- 7. A · 간선의 두 끝점이 이미 연결되어 있는지 확인하는 것
- 8. D · 값의 내림차순으로 인덱스를 담는 덱
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.