1.쉬움
방향 그래프란 무엇입니까?
- A간선이 한 정점에서 다른 정점으로 향하는 방향을 가진 그래프
- B서로 다른 모든 정점 쌍이 간선으로 연결된 그래프
- C사이클이 없는 그래프
- D모든 간선에 가중치가 있는 그래프
2.쉬움
이진 트리의 전위 순회(preorder)는 노드를 어떤 순서로 방문합니까?
- A왼쪽 서브트리, 오른쪽 서브트리, 노드
- B노드, 왼쪽 서브트리, 오른쪽 서브트리
- C왼쪽 서브트리, 노드, 오른쪽 서브트리
- D위에서부터 레벨별로
3.쉬움
스택의 맨 위에 원소를 추가하는 연산의 이름은 무엇입니까?
- AEnqueue
- BPop
- CPush
- DPeek
4.보통
이진 탐색 트리의 한 노드에 오른쪽 서브트리가 있습니다. 그 노드의 중위 후속자(in-order successor)는 어디에 있습니까?
- A왼쪽 서브트리의 가장 오른쪽 노드
- B항상 부모
- C항상 오른쪽 자식
- D오른쪽 서브트리의 가장 왼쪽 노드
5.보통
실행 중인 프로그램이 활성 함수 호출과 그 지역 변수를 추적하는 데 사용하는 자료 구조는 무엇입니까?
- A함수들의 해시 테이블
- B힙 메모리 큐
- C프레임들의 이진 탐색 트리
- D호출 스택(call stack)
6.보통
이진 힙을 포인터 없이 배열에 저장할 수 있는 이유는 무엇입니까?
- A힙에는 원소가 100개를 넘지 않기 때문에
- B완전 이진 트리이므로 위치가 간단한 인덱스 공식을 따르기 때문에
- C배열이 키를 자동으로 정렬된 순서로 유지하므로 포인터가 필요 없기 때문에
- D힙의 모든 키가 같기 때문에
7.어려움
어떤 객체를 해시 맵의 키로 저장한 뒤, 그 해시 함수가 사용하는 필드를 바꿉니다. 예상되는 결과는 무엇입니까?
- A필드가 바뀌는 순간 맵이 오류를 던진다
- B키의 해시는 프로그램이 시작될 때 한 번만 계산되므로 아무것도 바뀌지 않는다
- C객체가 이전 해시의 버킷에 있으므로 조회가 실패할 수 있다
- D맵이 자동으로 키를 새 버킷으로 옮긴다
8.어려움
세그먼트 트리는 일반적으로 무엇에 사용됩니까?
- A구간 질의(구간 합 등)와 갱신을 O(log n)에 처리하는 데
- B스택을 구현하는 데
- C그래프의 간선을 저장하는 데
- D각 접두사를 별도의 트리 노드에 저장하여 문자열을 알파벳순으로 정렬하는 데
정답표
- 1. A · 간선이 한 정점에서 다른 정점으로 향하는 방향을 가진 그래프
- 2. B · 노드, 왼쪽 서브트리, 오른쪽 서브트리
- 3. C · Push
- 4. D · 오른쪽 서브트리의 가장 왼쪽 노드
- 5. D · 호출 스택(call stack)
- 6. B · 완전 이진 트리이므로 위치가 간단한 인덱스 공식을 따르기 때문에
- 7. C · 객체가 이전 해시의 버킷에 있으므로 조회가 실패할 수 있다
- 8. A · 구간 질의(구간 합 등)와 갱신을 O(log n)에 처리하는 데
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.