9급 국가직 알고리즘 2024년 기출문제

시행 2024-03-23 · 책형 가 · 20문항 · 출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)

전체 풀기 (시험 모드)PDF 문제지 · 정답표 · 해설집
1.
다음은 빅오() 표기법에 해당하는 설명이다. (가), (나)에 들어갈 관계연산자를 바르게 연결한 것은?
어떤 양의 상수 이 존재하여 모든
(가)
에 대하여
(나)
을 만족하면 에 속한다.
(가) (나)
알고리즘
정답 보기

정답 ④ · 해설 보기

2.
안정 정렬(stable sort) 알고리즘에 해당하지 않는 것은?
알고리즘
  1. 퀵 정렬(quick sort)
  2. 버블 정렬(bubble sort)
  3. 삽입 정렬(insertion sort)
  4. 병합 정렬(merge sort)
정답 보기

정답 ① · 해설 보기

3.
다음과 같은 총 20 kg의 분할 가능한 금속 분말을 17 kg의 무게까지 허용 가능한 배낭에 넣으려 할 때, 그리디(greedy) 알고리즘으로 얻을 수 있는 최대 이익은?
금속 분말 이름
A
B
C
무게
10 kg
6 kg
4 kg
이익
200원
300원
400원
알고리즘
  1. 600원
  2. 750원
  3. 840원
  4. 900원
정답 보기

정답 ③ · 해설 보기

4.
입력 크기 에 대한 수행 횟수를 점근적 표기법으로 표현했을 때 옳지 않은 것은?
알고리즘
정답 보기

정답 ④ · 해설 보기

5.
다음 이진트리(binary tree)가 이진탐색트리(binary search tree)의 조건을 만족하려면 제거되어야 할 단말 노드(leaf node)의 최소 개수는?
알고리즘
  1. 1
  2. 2
  3. 3
  4. 4
정답 보기

정답 ③ · 해설 보기

6.
행렬 행렬 에 대하여 행렬 곱셈을 하고자 한다. 다음과 같은 행렬 의 각 원소를 구하는 공식을 이용하여 행렬 곱셈 결과인 행렬 를 만들 때 시간복잡도(time complexity)는? (단, , 이다)
알고리즘
정답 보기

정답 ② · 해설 보기

7.
힙(heap)과 힙 정렬에 대한 설명으로 옳은 것만을 모두 고르면? (단, 힙은 이진트리이고, 은 원소의 개수를 나타낸다)
ㄱ. 힙은 완전이진트리(complete binary tree) 구조를 가진다.
ㄴ. 힙은 배열로 구현하기에 적합하지 않다.
ㄷ. 힙에 하나의 노드를 추가하는 데 걸리는 시간은 이다.
ㄹ. 힙 정렬의 수행시간은 이다.
알고리즘
  1. ㄱ, ㄴ
  2. ㄱ, ㄹ
  3. ㄴ, ㄷ
  4. ㄱ, ㄷ, ㄹ
정답 보기

정답 ④ · 해설 보기

8.
입력 크기가 인 정렬 알고리즘에 대한 시간복잡도가 바르게 연결되지 않은 것은?
정렬 알고리즘 최악의 경우 평균적인 경우 최선의 경우
알고리즘
  1. 삽입 정렬(insertion sort)
  2. 선택 정렬(selection sort)
  3. 퀵 정렬
  4. 병합 정렬
정답 보기

정답 ② · 해설 보기

9.
다음은 문자들에 대한 빈도수를 나타낸다. 이 문자들에 대한 허프만 코드(Huffman code)를 생성할 경우에 가장 긴 코드를 가진 문자의 비트수는?
문자
a
b
c
d
e
f
빈도수
1
9
18
48
11
12
알고리즘
  1. 2
  2. 3
  3. 4
  4. 5
정답 보기

정답 ③ · 해설 보기

10.
다음 파이썬 코드의 시간복잡도는? (단, 은 1보다 큰 정수이다)
def abc(n) :
    if n == 1 : return 1
    else : return n * abc(n - 1)
알고리즘
정답 보기

정답 ③ · 해설 보기

11.
다음 그래프에서 생성이 가능한 신장 트리(spanning tree)의 최대 개수는?
알고리즘
  1. 4
  2. 8
  3. 16
  4. 32
정답 보기

정답 ③ · 해설 보기

12.
위상 정렬(topological sort)을 적용할 때 모든 정점을 포함하는 결과가 생성될 수 없는 그래프는?
알고리즘
정답 보기

정답 ③ · 해설 보기

13.
다음 설명에 해당하는 알고리즘은?
○ 모든 쌍 최단 거리(all pairs shortest path)를 구하는 알고리즘이다.
○ 음수의 가중치를 가진 간선(edge)이 있어도 수행될 수 있다.
○ 동적 계획법(dynamic programming)의 원리를 이용한다.
○ 시간복잡도는 이다. (단, 은 정점의 수이다)
알고리즘
  1. 프림(Prim) 알고리즘
  2. 플로이드-워셜(Floyd-Warshall) 알고리즘
  3. 다익스트라(Dijkstra) 알고리즘
  4. KMP(Knuth-Morris-Pratt) 알고리즘
정답 보기

정답 ② · 해설 보기

14.
다음 C언어로 작성된 함수의 입력값으로 13이 입력될 경우 출력되는 결과는?
void foo(int n) {
    if(n != 0){
        foo(n/2);
        printf("%d", n%2);
    }
}
알고리즘
  1. 1010
  2. 1011
  3. 1100
  4. 1101
정답 보기

정답 ④ · 해설 보기

15.
텍스트 문자열 01001에 대하여 패턴 문자열 001을 찾기 위해 브루트-포스(brute-force) 문자열 검색 알고리즘을 사용할 경우, 문자를 비교한 총 횟수는? (단, 패턴 문자열이 한번 검색되면 더 이상 검색하지 않는다)
알고리즘
  1. 1
  2. 3
  3. 5
  4. 6
정답 보기

정답 ④ · 해설 보기

16.
다음 중 그리디 알고리즘에 해당하는 것만을 모두 고르면?
ㄱ. 라빈-카프(Rabin-Karp) 알고리즘
ㄴ. 병합 정렬 알고리즘
ㄷ. 다익스트라 알고리즘
ㄹ. 플로이드-워셜 알고리즘
알고리즘
  1. ㄱ, ㄴ
  2. ㄱ, ㄷ
  3. ㄱ, ㄷ, ㄹ
정답 보기

정답 ① · 해설 보기

17.
퀵 정렬 시 시간복잡도가 최악의 경우가 되는 것으로 가장 적절한 것은?
알고리즘
  1. 피벗(pivot)을 최대값으로 정한다.
  2. 피벗을 랜덤(random)하게 정한다.
  3. 피벗을 중간값(median)으로 정한다.
  4. 피벗을 파티션(partition)의 중간에 위치한 값으로 정한다.
정답 보기

정답 ① · 해설 보기

18.
분할 정복(divide-conquer) 문제 해결 기법을 이용하여 토너먼트 방식으로 64개의 축구팀 중 1등을 결정하기 위해 치르게 되는 최소의 경기 횟수는? (단, 모든 경기는 팀별 1 : 1 방식으로 진행되며 무승부 및 기권은 없다)
알고리즘
  1. 61
  2. 62
  3. 63
  4. 64
정답 보기

정답 ③ · 해설 보기

19.
다음 설명의 (가)에 들어갈 용어로 옳은 것은? (단, P ≠ NP이다)
어떤 문제 A가 다음을 모두 만족하면
(가)
이다.
○ 문제 A는 NP에 속한다.
○ 모든 NP 문제들은 다항식 시간에 문제 A로 변환할 수 있다.
알고리즘
  1. P 문제
  2. NP 문제
  3. NP-하드(NP-hard) 문제
  4. NP-완전(NP-complete) 문제
정답 보기

정답 ④ · 해설 보기

20.
다음 의사코드(pseudo-code)로 표현된 알고리즘의 수행시간을 으로 나타낼 때, 의 계산식과 의 점근적 복잡도로 옳은 것은? (단, 은 1보다 큰 정수이고 는 양의 상수이다)
algo(n)
{
    if (n ≤ 1) return 0;
    return 1 + algo(n / 2);
}
알고리즘
  1. ,
  2. ,
  3. ,
  4. ,
정답 보기

정답 ② · 해설 보기