Sorting, Search, Recursive Algorithm
1. Node & LinkedList 클래스 2. 특정 원소 참조 함수 3. 노드 삽입 함수 4. 리스트 순회 함수 5. 노드 삭제 함수
Array & Doubly LinkedList Stack 구현 / Postfix Notation 수식 계산
Array, Doubly LinkedList로 큐 구현 / Circular Queue(환형 큐) / Priority Queues(우선 순위 큐)
Trees / Binary Trees / Depth First Traversal / Breadth First Traversal
Binary Search Trees - inorder, min, max, insert, remove 연산
max heap & min heap / insert, remove 메서드 / heap sort algorithm
그리디 알고리즘(탐욕법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미함. 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구함. 그리디 해법은 그 정당성 분석이 중요함.
구현이란 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정, 알고리즘 대회에서 구현 유형의 문제란 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제를 지칭함
탐색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정, 대표적인 그래프 탐색 알고리즘으로는 DFS와 BFS가 있음
정렬이란 데이터를 특정한 기준에 따라 순서대로 나열하는 것 / 종류 : Selection Sort, Insertion Sort, Quick Sort, Counting Sort
이진 탐색 : 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법
다이나믹 프로그래밍은 메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법 / 이미 계산된 결과(작은 문제)는 별도의 메모리 영역에 저장하여 다시 계산하지 않도록 함
다익스트라 최단 경로 알고리즘 : 특정한 노드에서 출발하여 다른 모든 노드로 가는 최단 경로 계산
1. 서로소 집합 자료 구조 / 2. 서로소 집합을 활용한 사이클 판별 / 3. 크루스칼 알고리즘 / 4. 위상 정렬
소수 판별 알고리즘 / 에라토스테네스의 체 알고리즘 / 투 포인터 / 구간 합 빠르게 구하기