2026 국가직9급 컴퓨터일반 18번 해설 — 퀵 정렬
문제
다음 파이썬 코드로 작성된 partition() 함수를 이용하여, 주어진 배열을 퀵 정렬(quick sort)로 오름차순 정렬하고자 한다. 정렬 과정에서 단계별 정렬 순서로 나타날 수 없는 것은? (단, 피벗(pivot)은 정렬하고자 하는 대상의 마지막 원소로 선택한다) # 정렬하고자 하는 대상인 A[first]…A[last]를 # 피벗(A[last]) 기준으로 분할하는 함수 def partition(A, first, last): p = A[last] low = first high = last while low < high: while p > A[low] and low < high: low += 1 while p <= A[high] and low < high: high -= 1 if low < high: A[low], A[high] = A[high], A[low] A[low], A[last] = A[last], A[low] return low 배열 7 3 2 19 13 5 11 17
- ① 2, 3, 5, 7, 13, 11, 17, 19
- ② 2, 3, 5, 11, 7, 13, 17, 19
- ③ 2, 3, 5, 11, 13, 7, 17, 19
- ④ 7, 3, 2, 11, 13, 5, 17, 19
선지별 해설
① 2, 3, 5, 7, 13, 11, 17, 19
이 선지 진술은 옳음(O)
왼쪽 부분 배열을 피벗 7로 분할하면 7이 제 위치로 이동하면서 해당 상태가 가능하다.
② 2, 3, 5, 11, 7, 13, 17, 19
이 선지 진술은 틀림(X)
초기 피벗 17 분할 후 왼쪽 부분 배열을 피벗 5로 분할하면 2,3,5,11,13,7,17,19가 된다. 7과 13이 바뀐 이 상태는 단계 결과가 아니다.
③ 2, 3, 5, 11, 13, 7, 17, 19
이 선지 진술은 옳음(O)
피벗 17로 1차 분할한 뒤 왼쪽 부분 배열을 피벗 5로 분할하면 해당 배열 상태가 된다.
④ 7, 3, 2, 11, 13, 5, 17, 19
이 선지 진술은 옳음(O)
처음 피벗 17을 기준으로 분할하면 19와 11이 교환되고 피벗 17이 19 앞에 놓인다.
핵심 요약 (Q&A)
- Q. 2026 국가직9급 컴퓨터일반 18번의 핵심 쟁점은 무엇인가?
- A. 2026 국가직9급 컴퓨터일반 18번은 퀵 정렬에 관한 문항으로, "옳은 것"을 고르는 문제입니다.
- Q. 2026 국가직9급 컴퓨터일반 18번의 정답은?
- A. 정답 선지는 본문 해설을 참고하세요.