1.쉬움
방향 그래프란 무엇입니까?
- A간선이 한 정점에서 다른 정점으로 향하는 방향을 가진 그래프
- B사이클이 없는 그래프
- C서로 다른 모든 정점 쌍이 간선으로 연결된 그래프
- D모든 간선에 가중치가 있는 그래프
2.쉬움
트리의 높이는 일반적으로 어떻게 정의됩니까?
- A루트와 모든 리프를 포함한 트리의 전체 노드 수
- B루트에서 리프까지 가장 긴 경로의 간선 수
- C루트의 자식 수
- D트리의 리프 수
3.쉬움
트리에서 리프(leaf)란 무엇입니까?
- A자식이 정확히 하나인 노드
- B값이 가장 큰 노드
- C자식이 없는 노드
- D부모가 없는 노드
4.보통
이진 최소 힙에서 extract-min은 어떻게 동작합니까?
- A루트를 제거하고 모든 원소를 왼쪽으로 한 칸씩 이동시킨다
- B배열의 마지막 원소를 제거한다
- C모든 리프에서 새로운 최솟값을 찾는다
- D마지막 원소를 루트로 옮기고 아래로 내린다
5.보통
실제로 배열 순회가 같은 길이의 연결 리스트 순회보다 훨씬 빠른 경우가 많은 이유는 무엇입니까?
- A배열 원소는 연속되어 있어 CPU 캐시를 잘 활용하기 때문에
- B배열은 값 비교에 더 적은 명령어를 쓰기 때문에
- C배열 순회는 전체가 O(1)이고 연결 리스트 순회는 O(n)이기 때문에
- D연결 리스트는 항상 원소를 디스크에 저장하기 때문에
6.보통
실행 중인 프로그램이 활성 함수 호출과 그 지역 변수를 추적하는 데 사용하는 자료 구조는 무엇입니까?
- A호출 스택(call stack)
- B프레임들의 이진 탐색 트리
- C함수들의 해시 테이블
- D힙 메모리 큐
7.어려움
랭크에 의한 합집합(union by rank)이나 경로 압축 없이, 원소가 n개인 union-find 구조에서 find 한 번의 최악의 경우 비용은 얼마입니까?
- AO(α(n))
- BO(1)
- CO(log n)
- DO(n)
8.어려움
세그먼트 트리는 일반적으로 무엇에 사용됩니까?
- A구간 질의(구간 합 등)와 갱신을 O(log n)에 처리하는 데
- B각 접두사를 별도의 트리 노드에 저장하여 문자열을 알파벳순으로 정렬하는 데
- C그래프의 간선을 저장하는 데
- D스택을 구현하는 데
정답표
- 1. A · 간선이 한 정점에서 다른 정점으로 향하는 방향을 가진 그래프
- 2. B · 루트에서 리프까지 가장 긴 경로의 간선 수
- 3. C · 자식이 없는 노드
- 4. D · 마지막 원소를 루트로 옮기고 아래로 내린다
- 5. A · 배열 원소는 연속되어 있어 CPU 캐시를 잘 활용하기 때문에
- 6. A · 호출 스택(call stack)
- 7. D · O(n)
- 8. A · 구간 질의(구간 합 등)와 갱신을 O(log n)에 처리하는 데
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.