🔥 Algorithm Problem Solving 코드 업로드 🔥 🛠 문제풀이 언어 C/C++ Java Python 📐문제 풀이 분류 📚 자료구조, 알고리즘 분야별 정리 ✏ 자료구조 및 알고리즘 개념/원리/증명/활용에 대해 직접 공부하고 정리한 블로그 포스팅 입니다 ❗ 목차 자료구조 Array and List Tree Stack Graph Heap Union-Find Hash 알고리즘 Time Complexity and Big-Oh Notation Recursion Sort Graph Divide and Conquer Dynamic Programming Operating System Algorithm Etc ✅ 자료구조 Array and List % 연산을 이용한 Circular Array 구현 및 응용 Array와 Linked List의 차이점 Tree Computer Science에서의 Tree란 Full, Perfect, Complete ? 이진트리의 형태 모든 정점을 최소 비용으로 연결하는 MST - Minimum Spanning Tre BST(Binary Search Tree)와 Find/Insert/Delete? Color를 이용해서 Self-Balancing을 구현하는 Red-Black Tree Stack ADT Stack의 정의와 연산 구현 (create, push, pop, top, empty) Queue 두 개의 Stack으로 Queue 자료구조를 구현해봅시다 Graph 사이클이 없는 방향 그래프 DAG - Directed Acyclic Graph Heap 자료구조 Heap(힙)이란? 기본 연산과 HeapSort, Heapify에 대해 Union-Find 서로소 집합을 관리하는 Disjoint Set(Union Find) Hash 빠른 데이터 검색을 위한 Hashing과 Hash Table Hash Table에서의 Collision Handling - Linear Probing, Separate Chaining ✅ 알고리즘 Time Complexity and Big-Oh Notation 시간복잡도 Big-O(빅 오) 표기법 Recursion 재귀 구현에서 Recursion과 Iteration의 차이점 Sort Sort Algorithm(Bubble/Insert/Selection/Merge/Quick)과 시간복잡도 Quick Sort 정의, 알고리즘 및 코드에 대해 Graph 무방향그래프에서의 Cut Vertex와 Biconnected Components 방향 그래프에서 사이클의 집합 Strongly Connected Component 그래프의 Vertex를 정렬하는 Topological Sort - Kahn's Algorithm Connected Graph에서 MST를 생성하는 Kruskal's Algorithm(Greedy, Union Find) Connected Graph에서 MST를 생성하는 Prim's Algorithm(Greedy, Priority Queue) Edge-Weighted Graph에서의 최단경로를 찾는 Dijkstra Algorithm Weighted Graph에서 최단거리를 찾는 Bellman-Ford Algorithm Divide and Conquer Divide-and-Conquer 알고리즘과 Master Theorem Dynamic Programming Dynamic Programming 문제를 위한 다섯 가지 단계 Operating System Algorithm LRU(Least Recently Used Algorithm) Algorithm이란? Python 구현 Etc Loop-Invariant in Iteration Quick Select를 O(n)에 구현 가능한 Median of Medians 알고리즘 Array의 k번째 작은 element 찾기 - QuickSelect 알고리즘 Kadane's Algorithm(카다네 알고리즘) SubArray 최대합 구하기