1.쉬움
그래프에서 사이클이란 무엇입니까?
- A가중치가 0인 간선
- B모든 정점을 방문하는 경로
- C같은 정점에서 시작하고 끝나는 경로
- D간선이 없는 정점
2.쉬움
트리에서 노드의 깊이(depth)란 무엇입니까?
- A루트에서 그 노드까지의 간선 수
- B그 서브트리의 노드 수
- C그 노드의 자식 수
- D그 노드에서 가장 깊은 리프까지의 간선 수
3.쉬움
정적 배열과 동적 배열의 주된 차이는 무엇입니까?
- A정적 배열은 숫자만 저장할 수 있다
- B동적 배열은 더 큰 메모리 블록으로 옮겨 가며 커질 수 있다
- C동적 배열은 원소를 연결된 노드에 저장하므로 한 번에 하나씩 커질 수 있다
- D정적 배열은 인덱스 접근이 더 느리다
4.보통
큐를 스택 두 개로 구현합니다. "in" 스택에 push하고 "out" 스택에서 pop하며, "out"이 비면 "in"에서 다시 채웁니다. 연산당 분할 상환 비용은 얼마입니까?
- AO(n)
- BO(n²)
- CO(log n)
- DO(1)
5.보통
크기가 7인 해시 테이블이 h(k) = k mod 7과 선형 탐사를 사용합니다. 10을 삽입한 뒤 17은 어디에 저장됩니까?
- A인덱스 6
- B인덱스 3
- C인덱스 4
- D인덱스 0
6.보통
후위 표기식 3 4 + 2 * 의 값은 얼마입니까?
- A11
- B10
- C14
- D24
7.어려움
서버가 해시 함수를 범용(universal) 해시 함수족에서 무작위로 고르는 이유는 무엇일 수 있습니까?
- A테이블 크기 조정의 필요를 없애기 위해
- B공격자가 모두 충돌하는 키를 많이 고를 가능성을 매우 낮추기 위해
- C해시 테이블을 정렬된 상태로 만들기 위해
- D공격자가 어떤 키를 보내더라도 어떤 두 키도 결코 충돌하지 않도록 보장하기 위해
8.어려움
이진 탐색 트리에서 자식이 두 개인 노드를 삭제할 때는 보통 어떻게 합니까?
- A그 아래 서브트리를 처음부터 다시 만들어 그 안에 있던 모든 키를 다시 삽입한다
- B루트와 맞바꾼다
- C중위 후속자(또는 선행자)로 대체한 다음 그 노드를 삭제한다
- D서브트리 전체를 삭제한다
정답표
- 1. C · 같은 정점에서 시작하고 끝나는 경로
- 2. A · 루트에서 그 노드까지의 간선 수
- 3. B · 동적 배열은 더 큰 메모리 블록으로 옮겨 가며 커질 수 있다
- 4. D · O(1)
- 5. C · 인덱스 4
- 6. C · 14
- 7. B · 공격자가 모두 충돌하는 키를 많이 고를 가능성을 매우 낮추기 위해
- 8. C · 중위 후속자(또는 선행자)로 대체한 다음 그 노드를 삭제한다
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.