1.쉬움
단일 연결 리스트에서 각 노드에는 무엇이 들어 있습니까?
- A데이터만
- B데이터와 다른 모든 노드에 대한 참조
- C데이터와 인덱스
- D데이터와 다음 노드에 대한 참조
2.쉬움
트리의 루트는 무엇입니까?
- A자식이 없는 노드
- B부모가 없는 최상위 노드
- C중간에 있는 아무 노드
- D가장 큰 값을 가진 노드
3.쉬움
단일 연결 리스트에서 마지막 노드의 next 포인터에는 무엇이 들어 있습니까?
- A리스트의 노드 수
- BNull(노드 없음)
- C첫 번째 노드의 주소
- D이전 노드의 주소
4.보통
리스트 중간에 있는 노드에 대한 참조가 있습니다. 어떤 리스트에서 그 노드를 O(1)에 제거할 수 있습니까?
- A단일 연결 리스트
- B동적 배열
- C이중 연결 리스트
- D정렬된 배열
5.보통
인덱스 0부터 시작하는 배열에 저장된 이진 힙에서 인덱스 i인 노드의 부모는 어디에 있습니까?
- A인덱스 2i + 1
- B인덱스 ⌊(i − 1) / 2⌋
- C인덱스 ⌊i / 2⌋ + 1
- D인덱스 i − 1
6.보통
어떤 애플리케이션은 빠른 조회가 필요하고, 키를 정렬된 순서로 나열하고 범위 질의에도 답해야 합니다. 가장 적합한 구조는 무엇입니까?
- A스택
- B해시 테이블
- C균형 이진 탐색 트리
- D정렬되지 않은 연결 리스트
7.어려움
랭크 기반 합치기(union by rank)와 경로 압축(path compression)을 사용하는 union-find(서로소 집합) 구조의 연산당 분할 상환 비용은 얼마입니까?
- AO(n)
- BO(α(n)), 즉 역 아커만 함수로, 실질적으로 상수이다
- C정확히 O(log n)
- DO(n²)
8.어려움
어떤 객체를 해시 맵의 키로 저장한 뒤, 그 해시 함수가 사용하는 필드를 바꿉니다. 예상되는 결과는 무엇입니까?
- A맵이 자동으로 키를 새 버킷으로 옮긴다
- B키의 해시는 프로그램이 시작될 때 한 번만 계산되므로 아무것도 바뀌지 않는다
- C객체가 이전 해시의 버킷에 있으므로 조회가 실패할 수 있다
- D필드가 바뀌는 순간 맵이 오류를 던진다
정답표
- 1. D · 데이터와 다음 노드에 대한 참조
- 2. B · 부모가 없는 최상위 노드
- 3. B · Null(노드 없음)
- 4. C · 이중 연결 리스트
- 5. B · 인덱스 ⌊(i − 1) / 2⌋
- 6. C · 균형 이진 탐색 트리
- 7. B · O(α(n)), 즉 역 아커만 함수로, 실질적으로 상수이다
- 8. C · 객체가 이전 해시의 버킷에 있으므로 조회가 실패할 수 있다
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.