Changyu Lee
Publications
Projects
Blog
Share
Changyu Lee
Publications
Projects
Blog
Algorithm
Algorithm Theory
Search
Python
1. Array
1-1. 슬라이싱 [::k]와 [:k] 차이
1-2. 리스트에서 중복 제거
코테 대비 Python 주요 자료구조와 내장 함수들 정리 (수정판)
C++
string
vector
pair
코테 대비 C++/Python/SQL 주요 자료구조와 내장 함수들 정리
Dijkstra Algorithm
개요
다익스트라 알고리즘
Dijkstra Algorithm
Priority Queue (우선순위 큐)
개요
일반 Queue와의 차이점
Priority Queue (feat. Heap)
Binary Search (이진 탐색)
개요
탐색이란?
원하는 데이터를 찾는 작업을
탐색
이라고 한다.
Binary Search (feat. Binary Search Tree)
Dynamic Programming (동적 계획법, DP)
개요
동적 계획법(DP)의 이해
Basics of Dynamic Programming
Topological Sorting (위상정렬)
개요
위상 정렬이란?
Topological Sorting
Breadth First Search (너비 우선 탐색)
개요
BFS는 다음과 같은 문제에서 주로 사용된다:
•
최단 경로 탐색 (무가중치 그래프에서)
Graph - Breadth First Search
Depth First Search (깊이 우선 탐색)
개요
그래프의 탐색
Graph - Depth First Search
Graph Algorithm (그래프 알고리즘)
개요
그래프 (Graph) 란?
Introduction to Graph Algorithm
정렬 알고리즘 비교
개요
•
정말 바쁘게 달려온 정렬 알고리즘 정리… 이제 마지막 장을 남겨 두고 있다.
•
정렬 알고리즘들을 한 눈에 비교하는 시리즈. 반드시 알아야하는 주요한 사항들도 한 번 같이 정리해보도록 한다.
정렬 알고리즘 비교 표
Comparison of Sorting Algorithm (feat. External Sort)
Quick Sort (쾌속 정렬)
개요
근데 분할-정복을 어디서 들어봤는데?
맞다. 바로 이전에 포스팅된 합병 정렬에서 다룬 내용이다.
Sorting Algorithm - Quick Sort (쾌속 정렬)
Merge Sort (합병 정렬)
개요
•
이름은 합병 정렬이다. 또는 병합 정렬이라고도 불린다. (밑에서 둘을 혼용함)
왜 “합병”인가?
Sorting Algorithm - Merge Sort (합병 정렬)
쉘 정렬 (Shell Sort)
개요
쉘 정렬이란?
Sorting Algorithm - Shell Sort (쉘 정렬)
Insertion Sort (삽입 정렬)
개요
삽입을 어떻게 하는가?
Sorting Algorithm - Insertion Sort (삽입 정렬)
버블 정렬 (Bubble Sort)
개요
왜 ‘버블’ 인가?
Sorting Algorithm - Bubble Sort (버블 정렬)
선택 정렬 (Selection Sort)
개요
지금부터 본격적인 기본 정렬 알고리즘을 공부해보자.
Sorting Algorithm - Selection Sort (선택 정렬)
Big-O Notation (빅오 표기법)
개요
프로그램의 성능 측정 방법론
Big-O Notation
이번 시리즈를 쓰는 이유
카이스트 면접을 탈락했을 때, 내 자신에게 실망했던 적이 있다. 바로 이 빅오 노테이션을 설명하지 못했던 것이다..
몰랐던 것은 아니다. 알고리즘에서 계산하는 법은 당연히 안다. 다만 한 줄로 설명이 안됐다.
대체 어떻게 이걸 못할 수가 있는가…? 나도 내 자신에게 정말 실망했었다.
심지어 대학교 1학년 때 나는 자료구조와 알고리즘을 A+ 받았다. 공부할 때 정말 열심히 했었고, 자신도 있었는데, 막상 오랜만에 누군가가 물어보니 설명을 못했다.
Introduction to From the Bottom - Algorithm Series