- Week 1 : 한국정보올림피아드
- Week 2 : Dynamic Programming
- Week 3 : Graph
- Week 4 : Stack, Queue and Deque
- Week 5 : Greedy and Brute Force
- week 6 : Sorting
- Week 7 : Binary Search
- Week 8 : Shortest Path and Minimal Spanning Tree
정렬된 리스트에서 요구하는 값을 최대한 빠르게 찾으며, 만일 값이 존재하지 않는다면 가장 가까운 값을 찾아야 합니다.
리스트를 정렬한다면, 값을 시간내에 가장 빠르게 찾을 수 있습니다.
Heap을 On-line상태에서 값을 다루는 데 유용하게 쓰입니다.
매 순간 가장 이상적인 값을 찾는다면, 어떠한 문제는 최적의 해를 찾을 수 있고, 최적의 해를 찾지 못하는 문제는 최적의 해에 근접한 값을 찾을 수 있습니다.
리스트를 다루는 기본적인 Data Structure입니다. Stack과 Queue는 데이터를 처리하는 방식과 크게 연관되어 있어서, 문제를 잘 읽고 해당 구조를 활용해야 합니다.
필요한 정보를 매 순간 새롭게 계산한다면 시간초과가 날 가능성이 99%입니다. DP메모리를 추가적으로 사용한다면, 메모리를 사용한 것 이상으로 시간적으로 이득을 취할 수 있습니다.
가장 복잡하면서도 다양한 하위 카테고리가 존재하는 그래프 입니다. Graph Searching부터 시작해서, Circle Detection, Minimal spanning Tree까지 다양한 문제가 있습니다.