🍚전공이 밥 먹여준다믄/📗 자료구조
자료구조 중간고사 총정리 & 예상문제 풀이
code.with.siyeon
2025. 5. 12. 18:47
📌 과목 개요
- 과목명: 자료구조
- 교재: 『파이썬으로 쉽게 배우는 자료구조 (개정판)』 - 최영규, 천인국
- 시험 범위: Chapter 1 ~ Chapter 3
- 시험 스타일: 구현 코드, 시간복잡도, 출력 결과 예측, 개념 설명
📚 핵심 요약 (Chapter 1 ~ 3)
🔹 Chapter 1 - 개념과 시간복잡도
- 자료구조 = 데이터를 효율적으로 표현하는 방식
- 추상 자료형(ADT) = 기능만 제공하고 구현은 숨긴 구조
- 시간복잡도 = 알고리즘 성능 측정 기준, 최악(Worst Case) 기준으로 생각!
🔹 Chapter 2 - 리스트
- 배열 기반 리스트: 접근 빠름(O(1)), 삽입/삭제 느림(O(n))
- 연결 리스트: 삽입/삭제 빠름(O(1)), 접근 느림(O(n))
- head, next, prev 포인터 흐름을 그리면서 이해!
🔹 Chapter 3 - 스택 & 큐
- 스택: 후입선출(LIFO), push, pop
- 큐: 선입선출(FIFO), enqueue, dequeue
- 파이썬의 pop(0)은 O(n), append()는 O(1)
🧪 자주 나오는 실전 문제 유형
✅ 1. 시간복잡도 예측
for i in range(n):
for j in range(n):
print(i, j)
✔️ 답: O(n²)
✅ 2. 연결 리스트 흐름 파악
class Node:
def __init__(self, data):
self.data = data
self.next = None
a = Node(1)
b = Node(2)
a.next = b
print(a.next.data)
✔️ 출력: 2
✅ 3. 스택 연산 흐름
s = Stack()
s.push(1)
s.push(2)
s.pop()
s.push(3)
print(s)
✔️ 출력: [1, 3]
✅ 4. 큐 연산 흐름
q = Queue()
q.enqueue('A')
q.enqueue('B')
q.dequeue()
q.enqueue('C')
print(q)
✔️ 출력: ['B', 'C']
✅ 5. ADT 개념 설명 (서술형 예시)
Q. 추상 자료형(ADT)이란 무엇인가요?
✔️ 답안 예시:
추상 자료형은 자료 구조의 논리적 정의와 연산의 집합을 의미하며,
내부 구현을 감추고 사용자에게 필요한 기능만 제공하는 구조입니다.
📌 시험 직전 체크리스트
☑ 시간복잡도 계산법 (이중 반복문, 재귀 등)
☑ 연결 리스트에서 포인터 흐름 (head, next)
☑ 스택/큐 출력 순서 흐름
☑ __str__() 호출 시 어떤 형태로 출력되는지
☑ 클래스 기반 코드에서 self.items의 변화 추적
📎 마무리 요약
- 시험에서는 "코드를 보고 출력/시간복잡도 예측" 문제가 자주 출제됨
- 기능만 제공하고 구현을 감추는 것 → ADT의 핵심
- 직접 손으로 써보고 시뮬레이션하면 실수 확률이 확 줄어듬!
✨ 응원 한 마디
자료구조는 개발 실력의 기초 체력!
시험공부는 끝났지만, 이 글은 다음 학기에도 분명히 다시 보게 될 보물창고가 될 거예요 💪