CS
자료구조
데이터를 어떻게 저장하고 관리할지를 정하는 방식
- 배열 (Array): 고정된 크기의 연속된 데이터 저장 공간. 인덱스로 접근 가능.
- 문자열 (String): 문자의 배열. (조작, 탐색 등)
- 연결 리스트 (Linked List): 요소가 포인터로 연결된 리스트. (삽입/삭제에 유리)
- 스택 (Stack): LIFO 구조. push, pop이 주요 연산. (괄호 짝 검사, DFS)
- 큐 (Queue): FIFO 구조. (enqueue, dequeue, BFS, 대기열)
- 힙 (Heap): 우선순위 큐 구현에 사용. 최소 힙/최대 힙이 있음. (최솟값 빠르게 찾기)
- 해시맵/딕셔너리 (HashMap / Dictionary): key-value 저장. 빠른 탐색 가능. (등장 횟수 세기)
알고리즘
문제를 해결하기 위한 절차나 방법
알고리즘 분류 | 대표 알고리즘/문제 예시 |
---|---|
정렬 | 버블, 선택, 삽입, 병합, 퀵, 힙, 계수 정렬 |
탐색 | 선형, 이진 탐색 / 완전 탐색, DFS, BFS |
그리디 | 거스름돈, 회의실 배정, 크루스칼 |
분할 정복 | 병합 정렬, 퀵 정렬, 이진 탐색 |
동적 계획법 (DP) | 피보나치, 배낭 문제, LCS |
백트래킹 | N-Queen, 부분 집합, 순열/조합 |
우선순위 큐 기반 | 다익스트라, 프림, 크루스칼 |
최소/최대 알고리즘 | 투 포인터, 슬라이딩 윈도우, 이분 탐색 |
문자열 | KMP, Trie, Z-Algorithm |
기타 | 유니온 파인드, 위상 정렬, 세그먼트 트리 |