1.쉬움
노드가 n개인 트리에는 간선이 몇 개 있습니까?
- A2n
- Bn − 1
- Cn
- Dn + 1
2.쉬움
정적 배열과 동적 배열의 주된 차이는 무엇입니까?
- A정적 배열은 인덱스 접근이 더 느리다
- B정적 배열은 숫자만 저장할 수 있다
- C동적 배열은 원소를 연결된 노드에 저장하므로 한 번에 하나씩 커질 수 있다
- D동적 배열은 더 큰 메모리 블록으로 옮겨 가며 커질 수 있다
3.쉬움
스택의 맨 위에 원소를 추가하는 연산의 이름은 무엇입니까?
- APush
- BPeek
- CEnqueue
- DPop
4.보통
충돌한 키들을 같은 버킷의 리스트에 저장하는 충돌 해결 방법은 무엇입니까?
- A이차 탐사(Quadratic probing)
- B선형 탐사(Linear probing)
- C이중 해싱(Double hashing)
- D분리 체이닝(Separate chaining)
5.보통
원형 버퍼(링 버퍼)는 일반적으로 무엇을 구현하는 데 사용됩니까?
- A고정 크기 큐
- B해시 함수
- C그래프 순회
- D이진 탐색 트리
6.보통
높이를 간선 수로 셀 때, 높이가 h인 포화 이진 트리의 노드는 몇 개입니까?
- A2h+1 − 1
- B2h
- C2h + 1
- Dh2
7.어려움
서버가 해시 함수를 범용(universal) 해시 함수족에서 무작위로 고르는 이유는 무엇일 수 있습니까?
- A테이블 크기 조정의 필요를 없애기 위해
- B공격자가 모두 충돌하는 키를 많이 고를 가능성을 매우 낮추기 위해
- C공격자가 어떤 키를 보내더라도 어떤 두 키도 결코 충돌하지 않도록 보장하기 위해
- D해시 테이블을 정렬된 상태로 만들기 위해
8.어려움
배열에서 크기 k인 모든 윈도우의 최댓값을 전체 O(n)에 계산할 수 있게 하는 구조는 무엇입니까?
- A윈도우 원소들의 단일 연결 리스트
- B이동으로 갱신하는 정렬된 배열
- C윈도우마다 다시 만드는 최소 힙
- D값의 내림차순으로 인덱스를 담는 덱
정답표
- 1. B · n − 1
- 2. D · 동적 배열은 더 큰 메모리 블록으로 옮겨 가며 커질 수 있다
- 3. A · Push
- 4. D · 분리 체이닝(Separate chaining)
- 5. A · 고정 크기 큐
- 6. A · 2h+1 − 1
- 7. B · 공격자가 모두 충돌하는 키를 많이 고를 가능성을 매우 낮추기 위해
- 8. D · 값의 내림차순으로 인덱스를 담는 덱
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.