1.쉬움
트리에서 리프(leaf)란 무엇입니까?
- A자식이 정확히 하나인 노드
- B자식이 없는 노드
- C값이 가장 큰 노드
- D부모가 없는 노드
2.쉬움
무방향 그래프에서 정점의 차수(degree)란 무엇입니까?
- A그래프의 정점 수
- B인접 리스트에서의 위치
- C그 정점에 연결된 간선의 수
- D그 정점에서 출발하는 가장 긴 경로의 길이
3.쉬움
"후입선출"(LIFO) 원칙으로 동작하는 자료 구조는 무엇입니까?
- A큐(Queue)
- B해시 테이블(Hash table)
- C연결 리스트(Linked list)
- D스택(Stack)
4.보통
알파벳이 고정된 트라이(trie)에서 길이 L인 단어를 탐색하는 데 얼마나 걸립니까?
- An이 단어 수일 때 O(n)
- B저장된 단어 수와 관계없이 O(L)
- Cn이 단어 수일 때 O(log n)
- DO(L × n)
5.보통
높이를 간선 수로 셀 때, 높이가 h인 포화 이진 트리의 노드는 몇 개입니까?
- A2h
- B2h + 1
- Ch2
- D2h+1 − 1
6.보통
큐를 스택 두 개로 구현합니다. "in" 스택에 push하고 "out" 스택에서 pop하며, "out"이 비면 "in"에서 다시 채웁니다. 연산당 분할 상환 비용은 얼마입니까?
- AO(1)
- BO(log n)
- CO(n)
- DO(n²)
7.어려움
기수 트리(radix tree, 압축 트라이)는 일반 트라이를 어떻게 개선합니까?
- A자식이 하나인 노드들의 사슬을 문자열로 레이블된 간선 하나로 합친다
- B각 단어를 개별 노드가 아니라 루트의 해시 테이블에 저장한다
- C각 단어의 첫 글자만 유지한다
- D각 노드의 자식을 빈도순으로 정렬한다
8.어려움
위상 정렬을 위한 칸(Kahn) 알고리즘은 진입 차수가 0인 정점을 반복해서 제거합니다. 그런 정점들은 어떤 구조에 보관됩니까?
- A진출 차수로 정렬된 최대 힙
- B방문한 모든 간선의 스택
- C진입 차수가 0인 정점들의 큐(또는 아무 컬렉션)
- D이미 제거된 정점이 어느 것인지 기록하는 인접 행렬
정답표
- 1. B · 자식이 없는 노드
- 2. C · 그 정점에 연결된 간선의 수
- 3. D · 스택(Stack)
- 4. B · 저장된 단어 수와 관계없이 O(L)
- 5. D · 2h+1 − 1
- 6. A · O(1)
- 7. A · 자식이 하나인 노드들의 사슬을 문자열로 레이블된 간선 하나로 합친다
- 8. C · 진입 차수가 0인 정점들의 큐(또는 아무 컬렉션)
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.