1.쉬움
스택의 peek(또는 top) 연산은 무엇을 합니까?
- A맨 위 원소를 제거하지 않고 반환한다
- B맨 위 원소를 제거하고 반환한다
- C스택의 맨 아래 원소를 반환한다
- D스택의 모든 원소를 제거한다
2.쉬움
이진 트리의 전위 순회(preorder)는 노드를 어떤 순서로 방문합니까?
- A왼쪽 서브트리, 노드, 오른쪽 서브트리
- B왼쪽 서브트리, 오른쪽 서브트리, 노드
- C위에서부터 레벨별로
- D노드, 왼쪽 서브트리, 오른쪽 서브트리
3.쉬움
노드가 n개인 트리에는 간선이 몇 개 있습니까?
- A2n
- Bn + 1
- Cn − 1
- Dn
4.보통
알파벳이 고정된 트라이(trie)에서 길이 L인 단어를 탐색하는 데 얼마나 걸립니까?
- An이 단어 수일 때 O(log n)
- B저장된 단어 수와 관계없이 O(L)
- Cn이 단어 수일 때 O(n)
- DO(L × n)
5.보통
인덱스 0부터 시작하는 배열에 저장된 이진 힙에서 인덱스 i인 노드의 부모는 어디에 있습니까?
- A인덱스 ⌊(i − 1) / 2⌋
- B인덱스 i − 1
- C인덱스 2i + 1
- D인덱스 ⌊i / 2⌋ + 1
6.보통
리스트 중간에 있는 노드에 대한 참조가 있습니다. 어떤 리스트에서 그 노드를 O(1)에 제거할 수 있습니까?
- A동적 배열
- B단일 연결 리스트
- C이중 연결 리스트
- D정렬된 배열
7.어려움
이중 해싱은 주로 선형 탐사의 어떤 문제를 줄입니까?
- A키를 테이블에 저장해야 한다는 것
- B차 있는 칸들이 길게 이어지는 1차 군집(primary clustering)
- C해시 함수가 필요하다는 것
- D키의 값을 읽는 O(n) 비용
8.어려움
서버가 해시 함수를 범용(universal) 해시 함수족에서 무작위로 고르는 이유는 무엇일 수 있습니까?
- A공격자가 모두 충돌하는 키를 많이 고를 가능성을 매우 낮추기 위해
- B테이블 크기 조정의 필요를 없애기 위해
- C공격자가 어떤 키를 보내더라도 어떤 두 키도 결코 충돌하지 않도록 보장하기 위해
- D해시 테이블을 정렬된 상태로 만들기 위해
정답표
- 1. A · 맨 위 원소를 제거하지 않고 반환한다
- 2. D · 노드, 왼쪽 서브트리, 오른쪽 서브트리
- 3. C · n − 1
- 4. B · 저장된 단어 수와 관계없이 O(L)
- 5. A · 인덱스 ⌊(i − 1) / 2⌋
- 6. C · 이중 연결 리스트
- 7. B · 차 있는 칸들이 길게 이어지는 1차 군집(primary clustering)
- 8. A · 공격자가 모두 충돌하는 키를 많이 고를 가능성을 매우 낮추기 위해
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.