2026년 10월 13일 화요일 공식 데이터 최종 확인 2026-10-02 전체 시험일정

MORNINGSTUDY CBT

2026년 국가직 9급 알고리즘 기출 풀기

2026 국가직 9급 알고리즘 기출 20문제를 CBT로 풀고 자동 채점, 문항별 정답, 합격선 정보를 확인하세요.

문항
20문제
권장 시간
22분
채점
100점 환산

2026년 4월 4일 시행한 가책형 20문항입니다. 정답은 4월 13일 공개된 공식 최종정답을 따릅니다. C 코드·의사코드·배열표, 그래프의 간선 방향과 가중치를 원문 이미지로 제공합니다. 22분은 당시 전체 시험시간 110분을 5과목으로 나눈 연습 기준이며 실제 과목별 제한시간이나 2027년 문제 수를 뜻하지 않습니다.

풀이 진행 0 / 20
  1. 011번 원문 시험지
    1. 다음은 1 이상인 x에 대해 1부터 x까지의 합을 계산하는 C 함수이다. (가)에 들어갈 코드는? int sum(int x) { if (x <= 1) return 1; return x + (가) ; } ①x + 1 ②x - 1 ③sum(x + 1) ④sum(x - 1)
  2. 022번 원문 시험지
    2. 다음 설명에 해당하는 알고리즘은? ○문자열 매칭 알고리즘이다. ○주어진 패턴과 텍스트에서 사용된 알파벳을 이용해 불일치 문자(bad character) 이동표를 만든다. ○패턴을 이용해서 일치 접미부(good suffix) 이동표를 만든다. ①다익스트라(Dijkstra) 알고리즘 ②라빈-카프(Rabin-Karp) 알고리즘 ③보이어-무어(Boyer-Moore) 알고리즘 ④플로이드-워셜(Floyd-Warshall) 알고리즘
  3. 033번 원문 시험지
    3. 분할 정복(divide and conquer) 방식의 정렬 알고리즘만을 모두 고르면? ㄱ. 버블 정렬(bubble sort) ㄴ. 병합 정렬(merge sort) ㄷ. 퀵 정렬(quick sort) ①ㄴ ②ㄱ, ㄴ ③ㄱ, ㄷ ④ㄴ, ㄷ
  4. 044번 원문 시험지
    4. 빅오() 표기법에 대한 설명으로 옳지 않은 것은? ①log은 2를 포함한다. ②log은 log을 포함한다. ③log은 log를 포함하지 않는다. ④log은 log을 포함하지 않는다. 수식과 선지: ① O(n log n)은 상수2 포함. ② O(n log n)은 3n log n+2n+1 포함. ③ O(n log n)은 3n+log n+2를 포함하지 않는다. ④ O(n log n)은 n²+2n log n+3을 포함하지 않는다.
  5. 055번 원문 시험지
    5. 다음 그래프에서 크루스칼(Kruskal) 알고리즘을 사용하여 만든 최소 비용 신장 트리(minimum cost spanning tree)는? ① ② ③ ④ 원 그래프는 무방향 가중 그래프이며 간선은 A-B(3), A-C(17), A-D(6), B-D(5), B-G(12), C-E(10), C-F(8), D-E(9), E-F(4), E-G(2), F-G(14)이다. 선지 그림의 간선: ① A-B(3), B-D(5), D-E(9), E-F(4), F-C(8), E-G(2). ② A-B(3), A-D(6), D-E(9), E-C(10), E-F(4), E-G(2). ③ A-B(3), A-C(17), A-D(6), D-E(9), C-F(8), E-G(2). ④ A-B(3), A-C(17), A-D(6), C-E(10), C-F(8), B-G(12).
  6. 066번 원문 시험지
    6. 충분히 큰 n에 대해서 수행 시간이 가장 많이 걸리는 시간 복잡도는? ① ② ③ ④log 시간복잡도 선지: ① Θ(2ⁿ), ② Θ(n³), ③ Θ(n!), ④ Θ(n log n).
  7. 077번 원문 시험지
    7. 다음 의사코드에 해당하는 알고리즘 설계기법은? f[ ]: 모든 값이 0으로 초기화된 정수 배열 fib(n) { if (f[n] == 0) { if (n == 1 or n == 2) f[n] = 1; else f[n] = fib(n - 1) + fib(n - 2); } return f[n]; } ①그리디(greedy) 알고리즘 ②유전자(genetic) 알고리즘 ③분기 한정(branch and bound) 기법 ④동적 프로그래밍(dynamic programming)
  8. 088번 원문 시험지
    8. 다음 그래프의 A 정점부터 너비 우선 탐색(BFS, breadth first search)을 할 때, 가능한 정점의 방문 순서가 아닌 것은? ①A ⟶B ⟶C ⟶D ⟶F ⟶G ⟶E ⟶H ②A ⟶B ⟶D ⟶C ⟶E ⟶F ⟶G ⟶H ③A ⟶C ⟶B ⟶D ⟶F ⟶G ⟶E ⟶H ④A ⟶C ⟶D ⟶E ⟶B ⟶F ⟶H ⟶G 무방향 그래프의 간선: A-B, A-C, A-D, B-D, C-D, C-F, C-G, D-E, D-F, F-G, F-H, G-H. 각 선지의 방문 순서는 원문과 같다.
  9. 099번 원문 시험지
    9. 다음 방향 그래프에 벨만-포드(Bellman-Ford) 알고리즘을 적용한 후, 각 정점과의 최단 거리 값을 바르게 연결한 것은? (단, 시작 정점은 A 정점이다) A B C D E F G ① 0 1 1 5 -1 -1 3 ② 0 1 3 5 0 4 3 ③ 0 3 2 2 3 2 6 ④ 0 3 5 5 6 4 7 방향과 가중치: A→B(6), A→C(5), A→D(5), C→B(-2), D→C(-2), B→E(-1), C→E(1), D→F(-1), E→G(3), F→G(3). 시작정점은 A이며 선지 표는 A,B,C,D,E,F,G 순서이다.
  10. 1010번 원문 시험지
    10. 다음 방향 그래프에서 2개 이상의 정점이 포함되어 있는 강한 연결 요소(strongly connected component)의 개수는? ①1 ②2 ③3 ④4 방향 그래프의 간선: B→A, A→E, E→B, E→F, F→C, C→D, D→G, G→H, H→D.
  11. 1111번 원문 시험지
    11. 다음 배열에서 버블 정렬 알고리즘을 사용하여 오름차순 정렬했을 때, 자리바꿈의 총횟수는? 배열 65 40 80 15 오름차순 방향 → ①3 ②4 ③5 ④6
  12. 1212번 원문 시험지
    12. 다음 표와 같이 분말이 있을 때, 40 kg 무게까지 허용가능한 배낭에 최대 이익을 얻을 수 있도록 분말을 넣는 알고리즘의 C 프로그램이 아래와 같다. (가), (나)에 들어갈 코드와 출력값을 바르게 연결한 것은? (단, 배낭에 각 분말 일부만 넣을 수도 있다) 분말 종류 보유량(kg) 이익 A 10 60 B 18 90 C 25 100 D 15 120 #include <stdio.h> int main() { double wgt[] = {10, 18, 25, 15}; double val[] = {60, 90, 100, 120}; double ratio[4] = {}, W = 40, max_r, totalVal = 0.0; int i, max_i; for (i = 0; i < 4; i++) ratio[i] = (가) ; while (W > 0) { max_r = -1.0; max_i = -1; for (i = 0; i < 4; i++) { if (wgt[i] > 0 && ratio[i] > max_r) { max_r = ratio[i]; max_i = i; } } if (max_i == -1) break; if (W >= wgt[max_i]) { W -= wgt[max_i]; totalVal += val[max_i]; } else { totalVal += val[max_i] * (나) ; break; } wgt[max_i] = 0; } printf("%.1f\n", totalVal); return 0; } (가) (나) 출력값 ①val[i] / wgt[i] W / wgt[max_i] 255.0 ②val[i] / wgt[i] wgt[max_i] / W 255.0 ③val[i] / wgt[i] W / wgt[max_i] 220.0 ④wgt[i] / val[i] W / wgt[max_i] 220.0
  13. 1313번 원문 시험지
    13. 다음 C 프로그램의 실행 결과에 포함되지 않는 것은? #include <stdio.h> int count = 0; void f(int n, char from, char tmp, char to){ count++; if (n == 1) printf("%d: 원판 %d를(을) %c에서 %c로 이동\n ", count, n, from, to); else { f(n - 1, from, to, tmp); printf("%d: 원판 %d를(을) %c에서 %c로 이동\n ", count, n, from, to); f(n - 1, tmp, from, to); } } int main() { f(3, 'a', 'b', 'c'); return 0; } ①4: 원판 1를(을) c에서 b로 이동 ②4: 원판 3를(을) a에서 c로 이동 ③5: 원판 1를(을) b에서 a로 이동 ④7: 원판 1를(을) a에서 c로 이동
  14. 1414번 원문 시험지
    14. 비어있는 이진 탐색 트리(binary search tree)에 다음 키값이 순서대로 입력되면, 15를 찾기 위해 방문해야 하는 노드의 개수는? 50, 40, 30, 35, 20, 15, 25, 10 ①3 ②4 ③5 ④6
  15. 1515번 원문 시험지
    15. 다음 배열에서 보간 탐색(interpolation search)으로 58을 찾고자 할 때, 첫 번째 탐색 위치는? (단, 배열에서 위치의 차이는 값의 차이에 비례한다는 가정하에 탐색 위치를 계산하며 소수점 이하는 반올림한다) 위치 0 1 2 3 4 5 6 7 8 9 배열 3 7 12 22 32 58 67 80 87 89 ①2 ②4 ③6 ④8
  16. 1616번 원문 시험지
    16. 다음과 같이 전체 버킷 개수가 13개이고 버킷당 1개의 슬롯을 가지는 비어있는 해시 테이블에 값 <7, 20, 28, 46, 81, 67, 4>를 순서대로 해시 함수를 사용하여 저장하였을 때, 버킷 번호 4에 저장되는 값은? (단, 해시 함수로 mod 을 사용하며, 충돌 해결은 개방 주소 방법의 선형 조사법(linear probing)을 적용한다) 버킷 번호 슬롯 0 1 2 3 4 5 6 7 8 9 10 11 12 ①4 ②46 ③67 ④81 해시함수는 h(x)=x mod 13이고 버킷 번호는0~12, 모든 슬롯은 비어 있다. 입력 순서는7,20,28,46,81,67,4이며 충돌 해결은 선형 조사법이다.
  17. 1717번 원문 시험지
    17. 다음 두 문자열 A와 B의 편집 거리(edit distance)는? (단, 허용하는 문자열 연산은 삽입, 삭제, 교체 연산이다) ○문자열 A: algorithm ○문자열 B: anthem ①5 ②6 ③7 ④9
  18. 1818번 원문 시험지
    18. 다음 배열에 대해 아래 알고리즘을 적용하여 정렬하고자 한다. 3번째 for 루프를 수행할 때, 배열 내에서 교환되는 두 값은? 위치 0 1 2 3 4 5 6 7 8 9 배열 9 21 54 32 77 45 19 83 12 3 Sort(A[], n): // n은 입력배열 A의 크기이다. for last ←(n – 1) downto 1 A[0 ... last] 중 가장 큰 수 A[k]를 찾는다. A[k]와 A[last]의 값을 교환한다. ①3, 54 ②21, 45 ③21, 54 ④32, 77
  19. 1919번 원문 시험지
    19. 다음과 같이 오름차순 정렬을 수행하는 알고리즘은? 초기 상태 5 20 17 6 2 13 10 1단계 5 20 17 6 2 13 10 2단계 5 17 20 6 2 13 10 3단계 5 6 17 20 2 13 10 4단계 2 5 6 17 20 13 10 5단계 2 5 6 13 17 20 10 6단계 2 5 6 10 13 17 20 ①병합 정렬 ②삽입 정렬 ③선택 정렬 ④퀵 정렬
  20. 2020번 원문 시험지
    20. 문자에 대한 빈도수가 다음과 같을 때, exam을 허프만(Huffman) 코드로 작성하면 비트 수는? 문자 a b c e m x 빈도수 8 5 3 10 6 1 ①10 ②11 ③12 ④14
문항을 선택한 뒤 채점하세요

채점 후 선택한 답·정답과 해설을 문항별로 확인할 수 있습니다.

공식 원문 확인

국가공무원 채용시스템의 공개 시험문제와 최종정답을 기준으로 구성했습니다. 시험일 2026-04-04 · 검증일 2026-10-13

공식 시험문제 공지 확인하기 · 공식 최종정답 확인하기