본문 바로가기
카테고리 없음

자료구조 총 정리 요약본(중간고사, 기말고사 등)

by studyforever-1 2025. 6. 19.

 본 게시물은 자료구조 총 정리로 각 주차별 핵심 내용을 다루고 있습니다. 복습하거나 놓친 부분이 있는지, 어떤 부분은 놓쳤는지 해당 부분만 빠르게 점검하는 용도로 활용하시면 좋을 거 같습니다. 이를 위해 본 게시글은 핵심만 정리하고, 각 주차별로 세부 내용을 볼 수 있게 링크를 남겨 놓겠습니다.

 1~7주차까지 중간고사, 9~14주차까지 기말고사 범위입니다. 8주차와 15주차는 각각 중간고사와 기말고사이기에 포함되지 않았습니다.

 목차는 1. 각 주차별 핵심 요점 2. 각 주차별 반드시 알아야 하는 내용 3. 각 주차별 핵심 요약입니다. 링크는 3번째 각 주차별 핵심 요약쪽에 있습니다.

 

1. 각 주차별 핵심 요점

주차 주제 핵심 요점
1주차 자료구조 개요 자료형, ADT, 알고리즘 성능분석, Big-O, 순환과 반복
2주차 배열과 리스트 배열과 연결리스트 구조 및 차이, 리스트 ADT
3주차 스택 LIFO, push/pop/peek, 괄호검사, 후위표기 계산
4주차 FIFO, enqueue/dequeue, 원형큐, 덱, 우선순위 큐
5주차 재귀와 분할정복 재귀 함수, 합병정렬, 이진탐색
6주차 정렬 알고리즘 버블/선택/삽입/퀵/합병/힙 정렬, 시간복잡도
7주차 탐색 알고리즘 순차/이진 탐색, 조건 및 복잡도 비교
9주차 트리 트리 기본구조, 이진트리, 순회방식(전중후위)
10주차 이진 탐색 트리 BST 삽입/삭제/탐색, 시간복잡도
11주차 AVL 트리 균형 인수 ±1, LL/LR/RR/RL 회전
12주차 힙과 우선순위 큐 완전 이진트리, Heap 정렬, Min/Max Heap
13주차 그래프 정점/간선, 인접행렬/리스트, DFS/BFS
14주차 최단 경로/MST Dijkstra, Kruskal, Prim, Union-Find

 

 

 

2. 각 주차별 반드시 알아야 하는 내용

 

1주차: 자료구조 개요

  • 자료구조(Data Structure): 데이터를 효율적으로 저장, 처리, 관리하는 방법
  • 자료형(Data Type): 기본형(정수, 실수 등)과 참조형(클래스 등)
  • 추상 자료형(ADT): List, Stack, Queue 등 인터페이스 정의
  • 알고리즘 성능: 시간복잡도와 공간복잡도, Big-O 표기법

2주차: 배열과 리스트

  • 배열: 고정 크기, 연속 메모리, 인덱스 접근 빠름
  • 리스트: 연결리스트(단일, 이중, 원형), 삽입/삭제가 빠름
  • 배열 vs 연결리스트 장단점 비교

3주차: 스택 (Stack)

  • LIFO 구조, 삽입(Push)/삭제(Pop)
  • 주요 연산: isEmpty, isFull, peek
  • 응용: 괄호 검사, 후위 표기법 계산, 함수 호출 스택 등

4주차: 큐 (Queue)

  • FIFO 구조, 삽입(Enqueue)/삭제(Dequeue)
  • 선형 큐 vs 원형 큐
  • 덱(Deque), 우선순위 큐(Priority Queue)

5주차: 재귀와 분할 정복

  • 재귀 호출과 스택의 관계
  • 분할정복 예시: 합병 정렬(Merge Sort), 이진 탐색(Binary Search)
  • 재귀의 장단점

6주차: 정렬 알고리즘

  • 버블 정렬, 선택 정렬, 삽입 정렬 (단순 O(n²))
  • 퀵 정렬, 합병 정렬, 힙 정렬 (효율적 O(n log n))
  • 안정성(Stable Sort) 개념

7주차: 탐색 알고리즘

  • 순차 탐색(Linear Search), 이진 탐색(Binary Search)
  • 이진 탐색 조건: 정렬된 배열
  • 시간복잡도: O(n), O(log n)

9주차: 트리 기초

  • 트리 구조: 루트, 부모/자식 노드, 리프 노드
  • 이진 트리(Binary Tree), 순회: 전위/중위/후위
  • 포화/완전/불완전 이진트리 정의

10주차: 이진 탐색 트리(BST)

  • 왼쪽 < 루트 < 오른쪽 조건 만족
  • 탐색, 삽입, 삭제 알고리즘
  • 시간복잡도 평균 O(log n), 최악 O(n)

11주차: AVL 트리 (균형 이진탐색트리)

  • 균형 인수(Balance Factor) = 왼쪽 높이 - 오른쪽 높이 (±1)
  • LL, RR, LR, RL 회전을 통해 균형 유지
  • 삽입/삭제 시 자동 균형 조정

12주차: 힙과 우선순위 큐

  • 최대 힙(Max-Heap), 최소 힙(Min-Heap)
  • 완전 이진 트리 기반
  • 힙 정렬(Heap Sort), 시간복잡도 O(n log n)

13주차: 그래프 기초

  • 정점(Vertex)과 간선(Edge), 방향성 유무
  • 인접 행렬 / 인접 리스트 표현
  • DFS, BFS 알고리즘

14주차: 최단 경로 및 최소 신장 트리(MST)

  • Dijkstra 알고리즘: 음의 가중치 X
  • Kruskal, Prim 알고리즘: MST 구성
  • Union-Find 알고리즘 활용 (Kruskal)

3. 각 주차별 핵심 요약

 

1주차 - 1주차 요약본

항목 - 요점 정리

자료구조 데이터를 효율적으로 저장하고 사용하는 방식
알고리즘 문제를 해결하는 절차, 명확하고 유한해야 함
ADT 구현은 숨기고 기능만 정의한 구조
시간복잡도 알고리즘의 효율성을 수치적으로 표현 (O(n), O(n²) 등)
재귀 vs 반복 대부분의 재귀는 반복으로 변경 가능, 반복이 빠름

 

2주차

항목 - 핵심 내용 요약

파이썬 자료형 int, float, str, list, tuple, dict, set 등
컬렉션 사용법 리스트, 튜플, 집합, 딕셔너리
제어문 if, elif, else, for, while
함수 정의 기본 인자, 반환값, 스코프 구분
클래스 개념 생성자, 멤버변수, 연산자 중복, 상속, 재정의 등

 

3주차

항목 - 핵심 내용 요약

리스트 구조 순서 있음, 중복 허용, ADT 기반 다양한 연산 정의
구현 방식 비교 배열 vs 연결 리스트 (접근/삽입 효율 차이)
리스트 성능 append는 빠름, insert/pop은 중간 위치일 때 느림
집합의 특성 순서 없음, 중복 없음, 연산 중심 구조
집합 ADT 삽입, 삭제, 포함 검사, 합/교/차집합 제공

 

4주차

항목 - 요약 설명

스택 구조 후입선출(LIFO), top에서 삽입/삭제
스택 연산 push, pop, peek, isEmpty, size, clear
괄호 검사 짝 검사 조건 3가지, 스택으로 괄호 순서 체크
후위 수식 피연산자 출력, 연산자는 우선순위 고려하여 스택
중위→후위 변환 연산자 우선순위와 괄호 처리 필요
DFS 응용 그래프 탐색 시 스택을 활용하는 대표적 알고리즘

 

5주차

항목 - 핵심 요약 설명

큐(Queue) FIFO 구조, front에서 꺼내고 rear에 삽입
선형 큐 문제 삭제 시 O(n), 비효율적
원형 큐 선형 큐의 공간 낭비 해결, 삽입/삭제 O(1)
덱(Deque) 앞뒤 양쪽에서 삽입/삭제 가능
우선순위 큐 우선순위 높은 항목이 먼저 나감, 힙 사용 시 효율적

 

6주차

항목 - 설명 요약

연결 리스트 개념 포인터 기반 동적 자료구조, 유연한 삽입/삭제 지원
단일 연결 리스트 노드가 다음 노드만 가리킴, 단방향 순회
이중 연결 리스트 노드가 앞/뒤 모두 가리킴, 양방향 순회
원형 연결 리스트 마지막 노드가 처음 노드를 가리킴, 무한 루프 가능
배열과의 차이점 배열은 접근이 빠르고 고정 크기, 리스트는 유연하고 동적

 

7주차

항목 - 설명 요약

다항식 연결 리스트 항(term)을 노드로 구성, 계수/지수/링크로 표현
다항식 덧셈 알고리즘 지수 비교 → 더하거나 그대로 추가, 연결 리스트 병합과 유사
다중 연결 리스트 하나의 노드가 2개 이상의 방향으로 연결됨
희소 행렬 표현 행과 열 방향 포인터로 0이 아닌 데이터만 저장

 

8주차 - 중간고사

 

9주차

항목 - 설명 요약

트리(Tree) 비선형 자료구조, 계층 구조 표현에 적합
노드 용어 루트, 자식, 부모, 리프, 서브트리, 레벨, 높이 등
이진 트리 각 노드가 최대 2개의 자식을 가짐
전위 순회 부모 → 왼쪽 → 오른쪽
중위 순회 왼쪽 → 부모 → 오른쪽 (BST에서 정렬됨)
후위 순회 왼쪽 → 오른쪽 → 부모
레벨 순회 BFS 방식, 큐를 활용

 

10주차

항목 - 설명 요약

이진 탐색 트리 왼쪽 < 루트 < 오른쪽, 이진 탐색이 가능한 트리 구조
탐색 연산 작으면 왼쪽, 크면 오른쪽으로 재귀
삽입 연산 탐색과 같은 방식으로 빈 자리에 삽입
삭제 연산 리프, 자식 1개, 자식 2개 경우로 분리하여 처리
시간복잡도 평균 O(log n), 최악 O(n) (편향 트리일 경우)
중위 순회 활용 BST의 정렬된 데이터를 출력할 수 있음

 

11주차

항목 - 요약 설명

AVL 트리 높이 균형 이진 탐색 트리, 삽입/삭제 시 회전으로 균형 유지
회전 종류 LL, RR, LR, RL 회전
힙(Heap) 완전 이진 트리, 부모 ≥/≤ 자식. 우선순위 구조에 적합
최소/최대 힙 루트가 가장 작은/큰 값을 가지는 힙
우선순위 큐 우선순위가 높은 항목 먼저 처리. 힙으로 효율적으로 구현

 

12주차

항목 - 설명 요약

그래프 정의 정점과 간선의 집합, 다양한 관계 구조 표현 가능
그래프 종류 방향성/무방향, 가중치/무가중치, 순환/비순환 등
인접 행렬 2차원 배열, O(n²) 공간, 간선 탐색 빠름
인접 리스트 연결 리스트, O(n+e) 공간, 공간 효율적
선택 기준 밀집 그래프→행렬 / 희소 그래프→리스트

 

13주차

항목 - 설명 요약

그래프 탐색 모든 정점을 순서대로 방문하는 과정
DFS (깊이 우선 탐색) 스택 구조, 깊이 우선 접근, 재귀 구현 가능
BFS (너비 우선 탐색) 큐 구조, 레벨 순으로 탐색, 최단 거리 탐색에 유리
구현 방식 비교 DFS → 재귀/스택 / BFS → 큐
시간복잡도 O(n + e) → 간선 수에 따라 결정

 

14주차

항목 - 설명 요약

MST 정의 모든 정점을 연결하고 가중치 총합이 최소인 트리
MST 조건 사이클 없음, 정점 수 – 1개의 간선으로 구성
Prim 알고리즘 한 정점에서 확장, 최소 간선 반복 선택
Kruskal 알고리즘 간선 오름차순 정렬 후 사이클 없는 간선 선택
Union-Find 사용 Kruskal에서 사이클 여부 판단용
활용 사례 네트워크 설계, 도로 연결, 비용 최소 경로 구성 등

 

15주차 - 기말고사

 

작성하다보니 말투가 다소 딱딱하네요. 공부하는데 제 게시글이 도움이 되었으면 좋겠습니다. 응원하겠습니다.

반응형