1.쉬움
분할 정복 알고리즘의 세 단계는 무엇입니까?
- A읽기, 계산, 쓰기
- B분할, 정복, 결합
- C정렬, 탐색, 반환
- D추측, 확인, 반복
2.쉬움
3n² + 5n + 2의 Big O는 무엇입니까?
- AO(n³)
- BO(5n)
- CO(n²)
- DO(3n²)
3.쉬움
메모이제이션(memoisation)이란 무엇입니까?
- A함수 호출 결과를 저장하여 반복 호출에 메모리에서 답하는 것
- B코드의 각 줄 옆에 주석을 쓰는 것
- C재귀를 동등한 루프로 자동 변환하여 호출 스택이 필요 없게 만드는 것
- D함수가 반환된 뒤 메모리를 해제하는 것
4.보통
표준 삼중 루프로 두 n × n 행렬을 곱하는 시간 복잡도는 무엇입니까?
- AO(n²)
- BO(n)
- CO(n³)
- DO(n² log n)
5.보통
간선 가중치가 음이 아닌 그래프에서 하나의 출발점으로부터 최단 경로를 찾는 알고리즘은 무엇입니까?
- AKruskal 알고리즘
- B모든 경우에 Bellman–Ford가 필요함
- C깊이 우선 탐색(DFS)
- DDijkstra 알고리즘
6.보통
상향식 표로 n번째 피보나치 수를 계산하는 시간 복잡도는 무엇입니까?
- AO(n²)
- BO(n)
- CO(log n)
- DO(2ⁿ)
7.어려움
클래스 NP의 올바른 정의는 무엇입니까?
- A어떤 알고리즘으로도 풀 수 없는 문제
- B인증서가 주어지면 "예" 답을 다항 시간에 검증할 수 있는 결정 문제
- C다항이 아닌 문제
- D다항 시간에 풀 수 없는 문제
8.어려움
log(n!)에 대한 올바른 한계는 무엇입니까?
- AΘ(n)
- BΘ(n log n)
- CΘ(n²)
- DΘ(log n)
정답표
- 1. B · 분할, 정복, 결합
- 2. C · O(n²)
- 3. A · 함수 호출 결과를 저장하여 반복 호출에 메모리에서 답하는 것
- 4. C · O(n³)
- 5. D · Dijkstra 알고리즘
- 6. B · O(n)
- 7. B · 인증서가 주어지면 "예" 답을 다항 시간에 검증할 수 있는 결정 문제
- 8. B · Θ(n log n)
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.