자격증 정복/컴퓨터시스템기사

컴퓨터시스템기사 필기 08 — 자료구조 활용 (스택·큐·트리·정렬·해싱)

올드 IT직장인 2026. 8. 14. 17:25

컴퓨터시스템기사 필기 08 — 자료구조 활용 (스택·큐·트리·정렬·해싱)

3과목 [3-1] 자료구조 활용 파트입니다.
트리 순회, 정렬 시간복잡도, 해시 함수 종류는 매 회차 출제돼요.


선형 자료구조

스택 (Stack) ⭐⭐

LIFO (Last In First Out) — 나중에 들어간 것이 먼저 나옴

주요 연산:
  push — 데이터 삽입 (top 증가)
  pop  — 데이터 삭제 (top 감소)
  peek — top 데이터 확인 (삭제 없음)

활용: 함수 호출(복귀 주소), 후위표기법 연산, 괄호 검사

 

스택 push/pop 추론:

push 순서: A, B, C
pop 순서:  C, B, A

 

큐 (Queue) ⭐

FIFO (First In First Out) — 먼저 들어간 것이 먼저 나옴

주요 연산:
  enqueue — 뒤(rear)에 삽입
  dequeue — 앞(front)에서 삭제

활용: OS 스케줄링, 프린터 대기열, 네트워크 패킷 처리

⚠️ OS 스케줄링은 큐(FIFO), 스택(LIFO) 아님!

 

연결 리스트 (Linked List)

동적 크기 조절 가능
삽입·삭제 O(1) — 배열보다 유리
탐색 O(n) — 배열보다 불리 (랜덤 접근 불가)

 

기출 문제

Q. 스택의 특성을 활용하는 대표적인 예는?

A. 함수 호출 시 복귀 주소 저장, 후위표기법(역폴란드 표기법) 연산

 

Q. OS 프로세스 스케줄링(FCFS)에 적합한 자료구조는?

A. 큐(Queue) — FIFO 방식


비선형 자료구조 — 트리 ⭐⭐⭐

트리 용어

루트(Root)  — 최상위 노드
리프(Leaf)  — 자식이 없는 단말 노드
차수(Degree) — 노드의 자식 수
높이(Height) — 루트에서 가장 깊은 리프까지의 경로 수

 

이진 트리 순회 ⭐⭐⭐

전위 순회 (Preorder):  루트 → 왼쪽 → 오른쪽
중위 순회 (Inorder):   왼쪽 → 루트 → 오른쪽
후위 순회 (Postorder): 왼쪽 → 오른쪽 → 루트

 

예시 트리:

        A
       / \
      B   C
     / \
    D   E

전위: A → B → D → E → C
중위: D → B → E → A → C
후위: D → E → B → C → A

 

이진 탐색 트리 (BST)

왼쪽 자식 < 부모 < 오른쪽 자식

탐색: O(log n) 평균, O(n) 최악 (편향 트리)
중위 순회하면 오름차순 정렬된 결과

 

기출 문제

Q. 다음 트리를 후위 순회한 결과는?

    A
   / \
  B   C
 /
D

A. D → B → C → A (왼→오→루트 반복)


정렬 알고리즘 ⭐⭐⭐

알고리즘 평균 시간복잡도 최악 시간복잡도 공간복잡도 특징
버블 정렬 O(n²) O(n²) O(1) 안정, 단순
선택 정렬 O(n²) O(n²) O(1) 불안정, 단순
삽입 정렬 O(n²) O(n²) O(1) 안정, 거의 정렬된 경우 빠름
퀵 정렬 O(n log n) O(n²) O(log n) 불안정, 실용적으로 가장 빠름
합병 정렬 O(n log n) O(n log n) O(n) 안정, 안정적 성능
힙 정렬 O(n log n) O(n log n) O(1) 불안정
O(n²): 버블, 선택, 삽입
O(n log n): 퀵, 합병, 힙

 

기출 문제

Q. 다음 중 평균 시간복잡도가 O(n log n)인 정렬 알고리즘은?

A. 퀵 정렬, 합병 정렬, 힙 정렬

 

Q. 최악의 경우 시간복잡도가 O(n²)인 정렬 중 실용적으로 가장 빠른 것은?

A. 퀵 정렬 — 최악은 O(n²)이지만 평균 O(n log n)으로 실용적으로 가장 빠름


탐색 알고리즘 ⭐

순차 탐색 (Linear Search)
  → 처음부터 끝까지 순서대로 탐색
  → O(n)

이진 탐색 (Binary Search)
  → 정렬된 데이터에서 중간값과 비교해 반씩 줄임
  → O(log n)
  → ⚠️ 반드시 정렬되어 있어야 함!

해시 (Hash) ⭐⭐

해시 함수 종류

제산법 (Division Method)
  → 키를 특정 수로 나눈 나머지를 주소로 사용
  → h(k) = k mod m

폴딩법 (Folding Method)
  → 키를 여러 부분으로 나눠 더한 값을 주소로 사용

자릿수 분석법 (Digit Analysis)
  → 키의 각 자릿수 분포를 분석해 주소 결정

제곱법 (Mid-Square Method)
  → 키를 제곱한 후 중간 비트를 주소로 사용

⚠️ "최소제곱법"은 해시 함수에 속하지 않음!

 

충돌 해결 방법

개방 주소법 (Open Addressing)
  선형 탐사 — 다음 빈 자리 순차 탐색
  이차 탐사 — 거리를 제곱수로 늘려 탐색

체이닝 (Chaining)
  → 충돌 발생 시 연결 리스트로 연결

 

기출 문제

Q. 해시 함수의 종류가 아닌 것은?

A. 최소제곱법 — 제산법, 폴딩법, 자릿수분석법, 제곱법이 해시 함수


그래프 ⭐

정점(Vertex) + 간선(Edge)으로 구성

방향 그래프 — 간선에 방향 있음
무방향 그래프 — 방향 없음

탐색 방법:
  DFS (깊이 우선 탐색) — 스택 또는 재귀
  BFS (너비 우선 탐색) — 큐 사용

💡 실무에서는?

인프라 아키텍트로 네트워크 경로 최적화(최단 경로 알고리즘, 다익스트라), 보안 이벤트 처리 큐(SIEM에서 이벤트 수신 시 큐에 쌓고 순서대로 분석), 방화벽 규칙 트리 탐색 등에서 자료구조가 직접 쓰여요. 특히 IP 주소 매핑에 트리(트라이) 구조를 쓰는 게 라우터의 핵심 원리예요.


핵심 정리

✅ 스택=LIFO(함수호출) / 큐=FIFO(OS스케줄링)
✅ 전위=루트→좌→우 / 중위=좌→루트→우 / 후위=좌→우→루트
✅ O(n²): 버블/선택/삽입
✅ O(nlogn): 퀵/합병/힙
✅ 퀵 최악=O(n²)이지만 평균 가장 빠름
✅ 이진탐색=반드시 정렬 필요, O(logn)
✅ 해시함수: 제산법/폴딩법/자릿수분석/제곱법
✅ "최소제곱법"은 해시함수 아님!

 

다음 편에서는 프로그래밍 언어 활용 — C언어·객체지향·BNF으로 이어갑니다!

 

궁금한 점은 댓글로 남겨주세요!

 

2026.08.12 - [자격증 정복/컴퓨터시스템기사] - 컴퓨터시스템기사 필기 07 — 컴퓨터 구조 응용 (병렬처리·Flynn분류·클라우드컴퓨팅)

 

컴퓨터시스템기사 필기 07 — 컴퓨터 구조 응용 (병렬처리·Flynn분류·클라우드컴퓨팅)

컴퓨터시스템기사 필기 07 — 컴퓨터 구조 응용 (병렬처리·Flynn분류·클라우드컴퓨팅)2과목 [2-3] 컴퓨터 구조 응용 파트입니다.Flynn 분류 4가지와 클라우드 서비스 모델(IaaS/PaaS/SaaS)은 매 회차 출

tech.seanney.pe.kr

2026.08.11 - [자격증 정복/컴퓨터시스템기사] - 컴퓨터시스템기사 필기 06 — 컴퓨터 기억 및 입출력장치 (캐시·DMA·인터럽트·채널)

 

컴퓨터시스템기사 필기 06 — 컴퓨터 기억 및 입출력장치 (캐시·DMA·인터럽트·채널)

컴퓨터시스템기사 필기 06 — 컴퓨터 기억 및 입출력장치 (캐시·DMA·인터럽트·채널)2과목 [2-2] 컴퓨터 기억 및 입출력장치 파트입니다.DMA 동작 방식, 인터럽트 우선순위, 채널 종류는 매 회차 출

tech.seanney.pe.kr

 

반응형