자료구조와 알고리즘에 대해서...
자료구조는 프로그래밍에서 사용되는 데이터를 어떻게 표현하는 것인가에 대한 컴퓨터 과학 분야이다. 그리고 알고리즘은 표현된 데이터를 계산하는 방법에 관한 컴퓨터 과학 분야이다. 하나 이상의 프로그램 언어를 익히고 문법에 대해 숙지가 되었다면, 이제는 데이터를 어떻게 나타내고, 어떻게 처리해야 효율적인 프로그램을 제작할 수 있는지에 대한 고민을 해볼 차례가 된 것이다. 효율적인 프로그램을 제작하기 위해서 자료구조와 알고리즘에 대해 배워보기로 하자.
선행되어야 할 학습내용 _ 파이썬
여기에서는 파이썬을 기반으로 자료구조와 알고리즘의 내용을 학습하는 것이 목표이다. 파이썬의 기본 문법과 코딩을 배웠다면, 자료구조와 알고리즘을 배울 기초적 단계는 완성되었다고 본다. 꼭 숙지되어야 할 문법은 변수, 데이터 타입, 그리고 반복문과 조건문에 대한 내용이다. 물론 재귀 함수에 대한 내용이 주를 이룬다. 이렇게 기본 문법을 기반으로 하기 때문에, 학습 중간중간 해당 내용에 대한 기억이 잘 나지 않는다면, 복습하면서 같이 보도록 하자.
Section 1 _ 알고리즘 분석 방법
[A] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 1] 자료구조와 알고리즘의 이해
[B] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 1] 알고리즘의 분석 _ 성장률(Rate of Growth)
[C] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 1] 알고리즘의 분석 _ 빅-오 표기법
[D] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 1] 알고리즘의 분석 _ 빅-오메가 표기법
[E] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 1] 알고리즘의 분석 _ 세타 표기법
Section 2 _ 자료구조의 이해 _ 연결 리스트 알고리즘 구현
[A] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 2] 동적 배열과 연결 리스트(Linked List)의 이해
[B] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 2] 단 방향 연결 리스트(Singly Linked Lists)
[C] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 2] 연결 리스트의 삽입(Insert) _ 첫 부분과 끝
[D] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 2] 연결 리스트의 헤드 클래스 & 노드 삭제 기능의 구현
[E] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 2] 연결 리스트 _ 중간 삽입& 삭제 구현
Section 3 _ 선형 자료구조(Linear data structures) _ 리스트, 스택, 큐
[A] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 3] 연결 리스트의 종류와 개념 이해하기
[B] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 3] 스택(Stack)의 종류와 개념 이해하기
[C] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 3] 큐(Queue)의 종류와 개념 이해하기
[D] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 3] 스택 알고리즘 _ 배열 스택(Array Stack)
[F] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 3] 파이썬 큐 모듈 사용법 _ 복잡도 분석&비교
Section 4 _ 비-선형 자료구조(Non - Linear data structures) _ 트리, 그래프
[A] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 4] 트리(Tree)의 개념 이해 _ 트리 용어 정리
[B] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 4] 그래프(Graph)의 개념 이해 _ 그래프 용어 정리
[C] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 4] 노드 알고리즘 구현 _ 이진트리(Binary Trees)
[D] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 4] 이진트리 순회 알고리즘의 구현 _ 순회 기능의 종류
[E] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 4] 그래프 구현 알고리즘의 종류
[F] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 4] 그래프 알고리즘 _ 인접 행렬(Adjacency matrix)
[G] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 4] 그래프 알고리즘 _ 인접 리스트(Adjacency List)
[H] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 4] 그래프와 큐의 혼합 _ 방문 상태 체크하기
Section 5 _ 탐색의 기본과 우선순위 큐(Priority Queues) _ 힙(Heaps)
[A] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 5] 탐색의 기본 _ 깊이 우선 탐색(Depth First Search)
[C] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 5] 우선순위 큐의 개념과 종류 &시간 복잡도
[D] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 5] 힙(Heap)의 개념과 용어 정리
Section 6 _ 숫자형 데이터의 검색과 정렬
[A] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 6] 정렬 알고리즘의 종류와 특징
[B] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 6] 검색 알고리즘의 종류와 특징
Section 7 _ 문자열 데이터의 검색과 정렬
Section 8 _ 알고리즘의 설계 _ 그리디, 분할 & 정복, 그리고 동적 프로그래밍
[A] [COMPUTER SCIENCE/Algorithmic & Data Structure] - [Section 8] 알고리즘 설계 기초 _ 분류(Classification)
APPENDIX
[1] 파이썬 문법 배우기
[2] 데이터 구조의 이해
[3] 추상 자료형이란?
'COMPUTER SCIENCE > CONTENTS' 카테고리의 다른 글
[INTRO] 컴퓨터 과학 미리 보기 (0) | 2022.01.12 |
---|---|
[Intro] C언어 프로그래밍 미리보기 (0) | 2021.08.27 |
[INTRO] 리눅스 시스템 미리보기 (0) | 2021.08.23 |
[Intro] 파이썬 미리보기 (0) | 2021.06.01 |