@euler-edu/constant 0.0.0-stage → 7.0.1-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/.tsbuildinfo +1 -0
- package/lib/clients/index.d.ts +1 -0
- package/lib/clients/index.js +18 -0
- package/lib/clients/index.js.map +1 -0
- package/lib/clients/platforms.d.ts +2 -0
- package/lib/clients/platforms.js +13 -0
- package/lib/clients/platforms.js.map +1 -0
- package/lib/oj-contest/index.d.ts +20 -0
- package/lib/oj-contest/index.js +14 -0
- package/lib/oj-contest/index.js.map +1 -0
- package/lib/oj-contest/pastContests.d.ts +16 -0
- package/lib/oj-contest/pastContests.js +1181 -0
- package/lib/oj-contest/pastContests.js.map +1 -0
- package/lib/oj-explore/algorithms.d.ts +706 -0
- package/lib/oj-explore/algorithms.js +716 -0
- package/lib/oj-explore/algorithms.js.map +1 -0
- package/lib/oj-explore/books.d.ts +68 -0
- package/lib/oj-explore/books.js +59 -0
- package/lib/oj-explore/books.js.map +1 -0
- package/lib/oj-explore/index.d.ts +1738 -0
- package/lib/oj-explore/index.js +52 -0
- package/lib/oj-explore/index.js.map +1 -0
- package/lib/oj-explore/root.d.ts +64 -0
- package/lib/oj-explore/root.js +50 -0
- package/lib/oj-explore/root.js.map +1 -0
- package/lib/oj-explore/sources.d.ts +44 -0
- package/lib/oj-explore/sources.js +40 -0
- package/lib/oj-explore/sources.js.map +1 -0
- package/lib/oj-mail/index.d.ts +3 -0
- package/lib/oj-mail/index.js +7 -0
- package/lib/oj-mail/index.js.map +1 -0
- package/lib/oj-problem/index.d.ts +7 -0
- package/lib/oj-problem/index.js +9 -0
- package/lib/oj-problem/index.js.map +1 -0
- package/lib/oj-problem/orders.d.ts +6 -0
- package/lib/oj-problem/orders.js +38 -0
- package/lib/oj-problem/orders.js.map +1 -0
- package/lib/oj-record/index.d.ts +100 -0
- package/lib/oj-record/index.js +9 -0
- package/lib/oj-record/index.js.map +1 -0
- package/lib/oj-record/trophies.d.ts +97 -0
- package/lib/oj-record/trophies.js +97 -0
- package/lib/oj-record/trophies.js.map +1 -0
- package/lib/oj-scoringRequest/index.d.ts +3 -0
- package/lib/oj-scoringRequest/index.js +7 -0
- package/lib/oj-scoringRequest/index.js.map +1 -0
- package/lib/oj-submit/defaultCodes.d.ts +7 -0
- package/lib/oj-submit/defaultCodes.js +31 -0
- package/lib/oj-submit/defaultCodes.js.map +1 -0
- package/lib/oj-submit/index.d.ts +246 -0
- package/lib/oj-submit/index.js +14 -0
- package/lib/oj-submit/index.js.map +1 -0
- package/lib/oj-submit/languages.d.ts +256 -0
- package/lib/oj-submit/languages.js +236 -0
- package/lib/oj-submit/languages.js.map +1 -0
- package/lib/oj-submit/statuses.d.ts +4 -0
- package/lib/oj-submit/statuses.js +27 -0
- package/lib/oj-submit/statuses.js.map +1 -0
- package/lib/oj-youtube/index.d.ts +1 -0
- package/lib/oj-youtube/index.js +11 -0
- package/lib/oj-youtube/index.js.map +1 -0
- package/lib/shortcuts/index.d.ts +39 -0
- package/lib/shortcuts/index.js +286 -0
- package/lib/shortcuts/index.js.map +1 -0
- package/lib/styles/editor.d.ts +11 -0
- package/lib/styles/editor.js +9 -0
- package/lib/styles/editor.js.map +1 -0
- package/lib/styles/font.d.ts +42 -0
- package/lib/styles/font.js +36 -0
- package/lib/styles/font.js.map +1 -0
- package/lib/styles/index.d.ts +3 -0
- package/lib/styles/index.js +20 -0
- package/lib/styles/index.js.map +1 -0
- package/lib/styles/theme.d.ts +4 -0
- package/lib/styles/theme.js +14 -0
- package/lib/styles/theme.js.map +1 -0
- package/package.json +24 -3
- package/README.md +0 -3
|
@@ -0,0 +1,716 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.algorithmCategories = void 0;
|
|
4
|
+
exports.algorithmCategories = {
|
|
5
|
+
basic: '기초',
|
|
6
|
+
search: '탐색',
|
|
7
|
+
sorting: '정렬',
|
|
8
|
+
greedy: '그리디',
|
|
9
|
+
recursion: '재귀',
|
|
10
|
+
dp: '동적 계획법',
|
|
11
|
+
graph: '그래프',
|
|
12
|
+
tree: '트리',
|
|
13
|
+
'data-structure': '자료구조',
|
|
14
|
+
math: '수학',
|
|
15
|
+
geometry: '기하학',
|
|
16
|
+
string: '문자열',
|
|
17
|
+
bit: '비트 연산',
|
|
18
|
+
};
|
|
19
|
+
exports.default = [
|
|
20
|
+
{
|
|
21
|
+
key: 'basic',
|
|
22
|
+
name: { kr: '기초 (Basic)', en: 'Basic' },
|
|
23
|
+
description: {
|
|
24
|
+
kr: '가장 쉬운 기초 문제들만 모았습니다.',
|
|
25
|
+
en: 'The easiest basic problems only',
|
|
26
|
+
},
|
|
27
|
+
keywords: ['basic', '기초', '입문', 'beginner'],
|
|
28
|
+
categories: ['basic'],
|
|
29
|
+
parent: 'algorithms',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
key: 'sorting',
|
|
33
|
+
name: { kr: '정렬 (Sort)', en: 'Sort' },
|
|
34
|
+
description: {
|
|
35
|
+
kr: '배열을 정해진 순서대로 나열하는 알고리즘입니다.',
|
|
36
|
+
en: 'Algorithms to arrange arrays in a specific order.',
|
|
37
|
+
},
|
|
38
|
+
keywords: [
|
|
39
|
+
'sort',
|
|
40
|
+
'정렬',
|
|
41
|
+
'bubble sort',
|
|
42
|
+
'merge sort',
|
|
43
|
+
'quick sort',
|
|
44
|
+
'counting sort',
|
|
45
|
+
],
|
|
46
|
+
categories: ['sorting'],
|
|
47
|
+
parent: 'algorithms',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
key: 'directionCheck',
|
|
51
|
+
name: { kr: '방향 확인 (Direction Check)', en: 'Direction Check' },
|
|
52
|
+
description: {
|
|
53
|
+
kr: '2차원 이상의 배열에서 방향 확인이 필요한 문제들을 모았습니다.',
|
|
54
|
+
en: 'Problems that require direction checking in 2D or higher arrays',
|
|
55
|
+
},
|
|
56
|
+
keywords: ['direction', '방향', '상하좌우', 'dx dy'],
|
|
57
|
+
categories: ['basic', 'search'],
|
|
58
|
+
parent: 'algorithms',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
key: 'recursion',
|
|
62
|
+
name: { kr: '재귀호출 (Recursion)', en: 'Recursion' },
|
|
63
|
+
description: {
|
|
64
|
+
kr: '자기 자신을 다시 호출하는 함수 구현이 필요한 문제들을 모았습니다.',
|
|
65
|
+
en: 'Problems that require implementing functions that call themselves',
|
|
66
|
+
},
|
|
67
|
+
keywords: ['recursion', '재귀', 'recursive'],
|
|
68
|
+
categories: ['recursion'],
|
|
69
|
+
parent: 'algorithms',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
key: 'divideAndConquer',
|
|
73
|
+
name: { kr: '분할 정복 (Divide and Conquer)', en: 'Divide and Conquer' },
|
|
74
|
+
description: {
|
|
75
|
+
kr: '문제를 작은 부분으로 나누어 해결하는 알고리즘입니다.',
|
|
76
|
+
en: 'Algorithms to solve a problem by dividing it into smaller parts',
|
|
77
|
+
},
|
|
78
|
+
keywords: ['divide and conquer', '분할정복'],
|
|
79
|
+
categories: ['recursion'],
|
|
80
|
+
parent: 'algorithms',
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
key: 'backTracking',
|
|
84
|
+
name: { kr: 'Backtracking (퇴각 검색)', en: 'Backtracking' },
|
|
85
|
+
description: {
|
|
86
|
+
kr: '모든 가능한 경우를 탐색하되, 조건에 맞지 않으면 되돌아가는 알고리즘입니다.',
|
|
87
|
+
en: 'An algorithm that explores all possible cases and backtracks when a condition is not met.',
|
|
88
|
+
},
|
|
89
|
+
keywords: [
|
|
90
|
+
'backtracking',
|
|
91
|
+
'백트래킹',
|
|
92
|
+
'퇴각검색',
|
|
93
|
+
'순열',
|
|
94
|
+
'조합',
|
|
95
|
+
'n-queens',
|
|
96
|
+
],
|
|
97
|
+
categories: ['search', 'recursion'],
|
|
98
|
+
parent: 'algorithms',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
key: 'stack',
|
|
102
|
+
name: { kr: '스택 (Stack)', en: 'Stack' },
|
|
103
|
+
description: {
|
|
104
|
+
kr: '데이터를 순차적으로 쌓는 선형 자료구조로, 후입선출(LIFO, Last-In-First-Out) 알고리즘입니다.',
|
|
105
|
+
en: 'A linear data structure that stacks data sequentially, characterized by a Last-In-First-Out (LIFO) principle.',
|
|
106
|
+
},
|
|
107
|
+
keywords: ['stack', '스택', 'lifo', '후입선출', '괄호', 'monotonic stack'],
|
|
108
|
+
categories: ['data-structure'],
|
|
109
|
+
parent: 'algorithms',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
key: 'queue',
|
|
113
|
+
name: { kr: '큐 (Queue)', en: 'Queue' },
|
|
114
|
+
description: {
|
|
115
|
+
kr: '데이터를 순서대로 처리하기 위해 사용하는 선형 자료구조로, 선입선출(FIFO, First-In-First-Out) 알고리즘입니다.',
|
|
116
|
+
en: 'A linear data structure used to process data in order, characterized by a First-In-First-Out (FIFO) principle.',
|
|
117
|
+
},
|
|
118
|
+
keywords: ['queue', '큐', 'fifo', '선입선출', 'deque', '덱'],
|
|
119
|
+
categories: ['data-structure'],
|
|
120
|
+
parent: 'algorithms',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
key: 'dfs',
|
|
124
|
+
name: { kr: 'DFS (깊이 우선 탐색)', en: 'DFS (Depth-First Search)' },
|
|
125
|
+
description: {
|
|
126
|
+
kr: '어떤 노드에서 시작해 가능한 깊이까지 탐색한 후, 다시 돌아와서 다른 방향을 탐색하는 알고리즘입니다.',
|
|
127
|
+
en: 'An algorithm that explores as deeply as possible from a starting node before returning and exploring other directions.',
|
|
128
|
+
},
|
|
129
|
+
keywords: ['dfs', '깊이우선탐색', 'depth first search', '그래프 탐색'],
|
|
130
|
+
categories: ['search', 'graph'],
|
|
131
|
+
parent: 'algorithms',
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
key: 'bfs',
|
|
135
|
+
name: { kr: 'BFS (너비 우선 탐색)', en: 'BFS (Breadth-First Search)' },
|
|
136
|
+
description: {
|
|
137
|
+
kr: '시작 노드에서 가까운 노드부터 단계적으로 탐색하는 알고리즘입니다.',
|
|
138
|
+
en: 'An algorithm that explores nodes level by level, starting from the nearest node.',
|
|
139
|
+
},
|
|
140
|
+
keywords: ['bfs', '너비우선탐색', 'breadth first search', '그래프 탐색'],
|
|
141
|
+
categories: ['search', 'graph'],
|
|
142
|
+
parent: 'algorithms',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
key: 'bfsShortsPath',
|
|
146
|
+
name: { kr: 'BFS (최단 경로)', en: 'Shortest Path with BFS' },
|
|
147
|
+
description: {
|
|
148
|
+
kr: 'BFS를 활용하여 가중치가 없는 그래프에서 최단 경로를 구하는 알고리즘입니다.',
|
|
149
|
+
en: 'An algorithm using BFS to find the shortest path in an unweighted graph.',
|
|
150
|
+
},
|
|
151
|
+
keywords: ['bfs', '최단경로', '최단거리', 'shortest path'],
|
|
152
|
+
categories: ['search', 'graph'],
|
|
153
|
+
parent: 'algorithms',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
key: 'floodFill',
|
|
157
|
+
name: { kr: '플러드 필 (Flood Fill)', en: 'Flood Fill' },
|
|
158
|
+
description: {
|
|
159
|
+
kr: '연결된 영역을 찾아 같은 값으로 채우는 알고리즘으로, 그림판의 채우기 기능과 같은 원리입니다.',
|
|
160
|
+
en: 'An algorithm that finds connected regions and fills them with the same value, similar to the fill tool in paint programs.',
|
|
161
|
+
},
|
|
162
|
+
keywords: ['flood fill', '플러드필', '연결요소', '색칠'],
|
|
163
|
+
categories: ['search', 'graph'],
|
|
164
|
+
parent: 'algorithms',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
key: 'greedy',
|
|
168
|
+
name: { kr: '탐욕 알고리즘 (Greedy)', en: 'Greedy' },
|
|
169
|
+
description: {
|
|
170
|
+
kr: '각 단계에서 현재 가장 최선의 선택을 하는 방식으로 문제를 해결하는 알고리즘입니다.',
|
|
171
|
+
en: 'An algorithm that solves problems by making the locally optimal choice at each step.',
|
|
172
|
+
},
|
|
173
|
+
keywords: ['greedy', '그리디', '탐욕법'],
|
|
174
|
+
categories: ['greedy'],
|
|
175
|
+
parent: 'algorithms',
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
key: 'scanning',
|
|
179
|
+
name: { kr: 'Scanning', en: 'Scanning' },
|
|
180
|
+
description: {
|
|
181
|
+
kr: '배열이나 문자열을 순차적으로 훑으며 조건을 만족하는 구간을 찾는 알고리즘입니다.',
|
|
182
|
+
en: 'An algorithm that sequentially scans arrays or strings to find intervals satisfying a condition.',
|
|
183
|
+
},
|
|
184
|
+
keywords: [
|
|
185
|
+
'scanning',
|
|
186
|
+
'sliding window',
|
|
187
|
+
'슬라이딩 윈도우',
|
|
188
|
+
'투포인터',
|
|
189
|
+
'two pointer',
|
|
190
|
+
],
|
|
191
|
+
categories: ['search', 'string'],
|
|
192
|
+
parent: 'algorithms',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
key: 'binarySearch',
|
|
196
|
+
name: { kr: '이진 검색 (Binary Search)', en: 'Binary Search' },
|
|
197
|
+
description: {
|
|
198
|
+
kr: '정렬된 배열에서 탐색 범위를 절반씩 줄여가며 원하는 값을 찾는 알고리즘입니다.',
|
|
199
|
+
en: 'An algorithm that finds a target value in a sorted array by halving the search range each step.',
|
|
200
|
+
},
|
|
201
|
+
keywords: [
|
|
202
|
+
'binary search',
|
|
203
|
+
'이진탐색',
|
|
204
|
+
'이분탐색',
|
|
205
|
+
'lower bound',
|
|
206
|
+
'upper bound',
|
|
207
|
+
],
|
|
208
|
+
categories: ['search'],
|
|
209
|
+
parent: 'algorithms',
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
key: 'parametricSearch',
|
|
213
|
+
name: {
|
|
214
|
+
kr: '파라메트릭 서치 (Parametric Search)',
|
|
215
|
+
en: 'Parametric Search',
|
|
216
|
+
},
|
|
217
|
+
description: {
|
|
218
|
+
kr: '최적화 문제를 결정 문제로 변환하여 이진 탐색으로 해결하는 알고리즘입니다.',
|
|
219
|
+
en: 'An algorithm that converts an optimization problem into a decision problem and solves it with binary search.',
|
|
220
|
+
},
|
|
221
|
+
keywords: ['parametric search', '파라메트릭 서치', '이진탐색', '최적화'],
|
|
222
|
+
categories: ['search'],
|
|
223
|
+
parent: 'algorithms',
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
key: 'math',
|
|
227
|
+
name: { kr: '수학 (Math)', en: 'Math' },
|
|
228
|
+
description: {
|
|
229
|
+
kr: '수학적 공식이나 원리를 활용하여 문제를 해결하는 알고리즘입니다.',
|
|
230
|
+
en: 'Algorithms that solve problems using mathematical formulas or principles.',
|
|
231
|
+
},
|
|
232
|
+
keywords: ['math', '수학', '수식', '공식'],
|
|
233
|
+
categories: ['math'],
|
|
234
|
+
parent: 'algorithms',
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
key: 'bruteForce',
|
|
238
|
+
name: { kr: '브루트 포스 (Brute Force)', en: 'Brute Force' },
|
|
239
|
+
description: {
|
|
240
|
+
kr: '모든 경우의 수를 직접 탐색하여 답을 구하는 알고리즘입니다.',
|
|
241
|
+
en: 'An algorithm that finds the answer by directly exploring all possible cases.',
|
|
242
|
+
},
|
|
243
|
+
keywords: ['brute force', '브루트포스', '완전탐색'],
|
|
244
|
+
categories: ['search'],
|
|
245
|
+
parent: 'algorithms',
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
key: 'rotation',
|
|
249
|
+
name: { kr: '회전 (Rotation)', en: 'Rotation' },
|
|
250
|
+
description: {
|
|
251
|
+
kr: '배열이나 좌표를 일정 각도로 회전시키는 연산이 필요한 문제들을 모았습니다.',
|
|
252
|
+
en: 'Problems that require rotating arrays or coordinates by a given angle.',
|
|
253
|
+
},
|
|
254
|
+
keywords: ['rotation', '회전', '배열 회전', '좌표 회전'],
|
|
255
|
+
categories: ['basic', 'geometry'],
|
|
256
|
+
parent: 'algorithms',
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
key: 'eulerTour',
|
|
260
|
+
name: {
|
|
261
|
+
kr: '오일러 경로 (한붓그리기, Eulerian Path)',
|
|
262
|
+
en: 'Eulerian Path',
|
|
263
|
+
},
|
|
264
|
+
description: {
|
|
265
|
+
kr: '그래프의 모든 간선을 정확히 한 번씩 지나는 경로를 찾는 알고리즘입니다.',
|
|
266
|
+
en: 'An algorithm that finds a path traversing every edge of a graph exactly once.',
|
|
267
|
+
},
|
|
268
|
+
keywords: ['eulerian path', '오일러경로', '한붓그리기', 'eulerian circuit'],
|
|
269
|
+
categories: ['graph'],
|
|
270
|
+
parent: 'algorithms',
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
key: 'tsp',
|
|
274
|
+
name: {
|
|
275
|
+
kr: 'TSP (외판원 순회 문제)',
|
|
276
|
+
en: 'TSP (Traveling Salesman Problem)',
|
|
277
|
+
},
|
|
278
|
+
description: {
|
|
279
|
+
kr: '모든 도시를 한 번씩 방문하고 출발지로 돌아오는 최단 경로를 구하는 문제입니다.',
|
|
280
|
+
en: 'A problem that finds the shortest route visiting every city exactly once and returning to the starting point.',
|
|
281
|
+
},
|
|
282
|
+
keywords: ['tsp', 'traveling salesman', '외판원 순회', 'hamiltonian path'],
|
|
283
|
+
categories: ['graph', 'dp'],
|
|
284
|
+
parent: 'algorithms',
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
key: 'carlender',
|
|
288
|
+
name: { kr: '날짜 계산 (Carlender)', en: 'Carlender' },
|
|
289
|
+
description: {
|
|
290
|
+
kr: '날짜, 요일, 기간 등 달력과 관련된 계산이 필요한 문제들을 모았습니다.',
|
|
291
|
+
en: 'Problems that require calendar-related calculations such as dates, days of the week, and durations.',
|
|
292
|
+
},
|
|
293
|
+
keywords: ['calendar', '날짜', '요일', '날짜 계산'],
|
|
294
|
+
categories: ['basic', 'math'],
|
|
295
|
+
parent: 'algorithms',
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
key: 'lis',
|
|
299
|
+
name: {
|
|
300
|
+
kr: 'LIS (최장 증가 부분 수열)',
|
|
301
|
+
en: 'LIS (Longest Increasing Subsequence)',
|
|
302
|
+
},
|
|
303
|
+
description: {
|
|
304
|
+
kr: '수열에서 순서를 유지하면서 값이 단조 증가하는 가장 긴 부분 수열을 구하는 알고리즘입니다.',
|
|
305
|
+
en: 'An algorithm that finds the longest subsequence in which values are strictly increasing while maintaining order.',
|
|
306
|
+
},
|
|
307
|
+
keywords: ['lis', 'longest increasing subsequence', '최장증가부분수열'],
|
|
308
|
+
categories: ['dp'],
|
|
309
|
+
parent: 'algorithms',
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
key: 'knapsack',
|
|
313
|
+
name: { kr: '배낭 문제 (Knapsack)', en: 'Knapsack' },
|
|
314
|
+
description: {
|
|
315
|
+
kr: '무게 제한이 있는 배낭에 가치의 합이 최대가 되도록 물건을 선택하는 최적화 문제입니다.',
|
|
316
|
+
en: 'An optimization problem that selects items to maximize total value within a weight-limited knapsack.',
|
|
317
|
+
},
|
|
318
|
+
keywords: ['knapsack', '배낭문제', '0-1 knapsack', 'dp'],
|
|
319
|
+
categories: ['dp'],
|
|
320
|
+
parent: 'algorithms',
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
key: 'mincoin',
|
|
324
|
+
name: { kr: '최소 동전 개수 (Min Coin)', en: 'Min Coin' },
|
|
325
|
+
description: {
|
|
326
|
+
kr: '주어진 동전 종류로 특정 금액을 만들 때 필요한 최소 동전 개수를 구하는 문제입니다.',
|
|
327
|
+
en: 'A problem that finds the minimum number of coins needed to make a specific amount with given coin denominations.',
|
|
328
|
+
},
|
|
329
|
+
keywords: ['coin change', '최소동전', '거스름돈', 'dp'],
|
|
330
|
+
categories: ['dp'],
|
|
331
|
+
parent: 'algorithms',
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
key: 'lcs',
|
|
335
|
+
name: {
|
|
336
|
+
kr: 'LCS (최장 공통 부분 수열)',
|
|
337
|
+
en: 'LCS (Longest Common Subsequence)',
|
|
338
|
+
},
|
|
339
|
+
description: {
|
|
340
|
+
kr: '두 수열에서 공통으로 나타나는 가장 긴 부분 수열을 구하는 알고리즘입니다.',
|
|
341
|
+
en: 'An algorithm that finds the longest subsequence common to two sequences.',
|
|
342
|
+
},
|
|
343
|
+
keywords: ['lcs', 'longest common subsequence', '최장공통부분수열'],
|
|
344
|
+
categories: ['dp'],
|
|
345
|
+
parent: 'algorithms',
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
key: 'dijkstra',
|
|
349
|
+
name: { kr: '다익스트라 (Dijkstra)', en: 'Dijkstra' },
|
|
350
|
+
description: {
|
|
351
|
+
kr: '가중치가 있는 그래프에서 단일 출발점으로부터 모든 노드까지의 최단 경로를 구하는 알고리즘입니다.',
|
|
352
|
+
en: 'An algorithm that finds the shortest path from a single source to all nodes in a weighted graph.',
|
|
353
|
+
},
|
|
354
|
+
keywords: ['dijkstra', '다익스트라', '최단경로', 'shortest path'],
|
|
355
|
+
categories: ['graph'],
|
|
356
|
+
parent: 'algorithms',
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
key: 'floydWarshall',
|
|
360
|
+
name: { kr: '플로이드-워셜 (Floyd-Warshall)', en: 'Floyd-Warshall' },
|
|
361
|
+
description: {
|
|
362
|
+
kr: '그래프의 모든 노드 쌍 사이의 최단 경로를 구하는 알고리즘입니다.',
|
|
363
|
+
en: 'An algorithm that finds the shortest paths between all pairs of nodes in a graph.',
|
|
364
|
+
},
|
|
365
|
+
keywords: [
|
|
366
|
+
'floyd-warshall',
|
|
367
|
+
'플로이드워셜',
|
|
368
|
+
'all pairs shortest path',
|
|
369
|
+
'전체쌍 최단경로',
|
|
370
|
+
],
|
|
371
|
+
categories: ['graph'],
|
|
372
|
+
parent: 'algorithms',
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
key: 'prim',
|
|
376
|
+
name: { kr: 'MST (최소 신장 트리)', en: 'MST (Minimum Spanning Tree)' },
|
|
377
|
+
description: {
|
|
378
|
+
kr: '그래프의 모든 노드를 연결하면서 간선의 가중치 합이 최소인 트리를 구하는 알고리즘입니다.',
|
|
379
|
+
en: 'An algorithm that finds a tree connecting all nodes in a graph with the minimum total edge weight.',
|
|
380
|
+
},
|
|
381
|
+
keywords: [
|
|
382
|
+
'mst',
|
|
383
|
+
'minimum spanning tree',
|
|
384
|
+
'최소신장트리',
|
|
385
|
+
'prim',
|
|
386
|
+
'kruskal',
|
|
387
|
+
'크루스칼',
|
|
388
|
+
],
|
|
389
|
+
categories: ['graph', 'tree'],
|
|
390
|
+
parent: 'algorithms',
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
key: 'topologicalSort',
|
|
394
|
+
name: {
|
|
395
|
+
kr: '위상 정렬 (Topological Sort)',
|
|
396
|
+
en: 'Topological Sort',
|
|
397
|
+
},
|
|
398
|
+
description: {
|
|
399
|
+
kr: '방향 비순환 그래프(DAG)에서 선후 관계를 지키며 노드를 순서대로 나열하는 알고리즘입니다.',
|
|
400
|
+
en: 'An algorithm that orders nodes in a directed acyclic graph (DAG) while respecting dependency order.',
|
|
401
|
+
},
|
|
402
|
+
keywords: ['topological sort', '위상정렬', 'dag', '의존성'],
|
|
403
|
+
categories: ['graph', 'sorting'],
|
|
404
|
+
parent: 'algorithms',
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
key: 'unionFind',
|
|
408
|
+
name: { kr: '합집합 찾기 (Union-Find)', en: 'Union-Find' },
|
|
409
|
+
description: {
|
|
410
|
+
kr: '여러 노드의 집합 관계를 효율적으로 관리하고, 두 노드가 같은 집합에 속하는지 판별하는 자료구조입니다.',
|
|
411
|
+
en: 'A data structure that efficiently manages set membership and determines whether two nodes belong to the same set.',
|
|
412
|
+
},
|
|
413
|
+
keywords: ['union find', '유니온파인드', 'disjoint set', '서로소집합'],
|
|
414
|
+
categories: ['graph', 'data-structure'],
|
|
415
|
+
parent: 'algorithms',
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
key: 'Dynamic',
|
|
419
|
+
name: {
|
|
420
|
+
kr: '동적 계획법 (Dynamic Programming)',
|
|
421
|
+
en: 'Dynamic Programming',
|
|
422
|
+
},
|
|
423
|
+
description: {
|
|
424
|
+
kr: '복잡한 문제를 작은 하위 문제로 나누고, 중복 계산을 방지하여 효율적으로 해결하는 알고리즘입니다.',
|
|
425
|
+
en: 'An algorithm that breaks complex problems into smaller subproblems and solves them efficiently by avoiding redundant calculations.',
|
|
426
|
+
},
|
|
427
|
+
keywords: [
|
|
428
|
+
'dp',
|
|
429
|
+
'dynamic programming',
|
|
430
|
+
'동적계획법',
|
|
431
|
+
'memoization',
|
|
432
|
+
'메모이제이션',
|
|
433
|
+
'점화식',
|
|
434
|
+
],
|
|
435
|
+
categories: ['dp'],
|
|
436
|
+
parent: 'algorithms',
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
key: 'numberOfTheory',
|
|
440
|
+
name: { kr: '정수론 (Number Theory)', en: 'Number Theory' },
|
|
441
|
+
description: {
|
|
442
|
+
kr: '소수, 약수, 최대공약수 등 정수의 성질을 다루는 수학적 알고리즘입니다.',
|
|
443
|
+
en: 'Mathematical algorithms dealing with properties of integers such as primes, divisors, and GCD.',
|
|
444
|
+
},
|
|
445
|
+
keywords: [
|
|
446
|
+
'number theory',
|
|
447
|
+
'정수론',
|
|
448
|
+
'소수',
|
|
449
|
+
'prime',
|
|
450
|
+
'gcd',
|
|
451
|
+
'lcm',
|
|
452
|
+
'sieve',
|
|
453
|
+
'에라토스테네스',
|
|
454
|
+
],
|
|
455
|
+
categories: ['math'],
|
|
456
|
+
parent: 'algorithms',
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
key: 'priorityQueue',
|
|
460
|
+
name: { kr: '우선순위 큐 (Priority Queue)', en: 'Priority Queue' },
|
|
461
|
+
description: {
|
|
462
|
+
kr: '각 원소에 우선순위를 부여하여 높은 우선순위의 원소가 먼저 처리되는 자료구조입니다.',
|
|
463
|
+
en: 'A data structure where each element has a priority and higher-priority elements are processed first.',
|
|
464
|
+
},
|
|
465
|
+
keywords: ['priority queue', '우선순위큐', 'heap', '힙'],
|
|
466
|
+
categories: ['data-structure'],
|
|
467
|
+
parent: 'algorithms',
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
key: 'segmentTree',
|
|
471
|
+
name: { kr: '세그먼트 트리 (Segment Tree)', en: 'Segment Tree' },
|
|
472
|
+
description: {
|
|
473
|
+
kr: '배열의 구간 합, 최솟값, 최댓값 등을 효율적으로 처리하는 트리 기반 자료구조입니다.',
|
|
474
|
+
en: 'A tree-based data structure that efficiently handles range queries such as sum, min, and max over arrays.',
|
|
475
|
+
},
|
|
476
|
+
keywords: [
|
|
477
|
+
'segment tree',
|
|
478
|
+
'세그먼트 트리',
|
|
479
|
+
'range query',
|
|
480
|
+
'구간쿼리',
|
|
481
|
+
'fenwick tree',
|
|
482
|
+
'bit',
|
|
483
|
+
],
|
|
484
|
+
categories: ['data-structure', 'tree'],
|
|
485
|
+
parent: 'algorithms',
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
key: 'networkFlow',
|
|
489
|
+
name: { kr: '네트워크 플로우 (Network Flow)', en: 'Network Flow' },
|
|
490
|
+
description: {
|
|
491
|
+
kr: '소스에서 싱크까지 네트워크를 통해 흘릴 수 있는 최대 유량을 구하는 알고리즘입니다.',
|
|
492
|
+
en: 'An algorithm that finds the maximum flow that can be sent through a network from source to sink.',
|
|
493
|
+
},
|
|
494
|
+
keywords: [
|
|
495
|
+
'network flow',
|
|
496
|
+
'네트워크플로우',
|
|
497
|
+
'max flow',
|
|
498
|
+
'최대유량',
|
|
499
|
+
'bipartite matching',
|
|
500
|
+
'이분매칭',
|
|
501
|
+
],
|
|
502
|
+
categories: ['graph'],
|
|
503
|
+
parent: 'algorithms',
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
key: 'bitMask',
|
|
507
|
+
name: { kr: '비트 마스크 (BitMask)', en: 'BitMask' },
|
|
508
|
+
description: {
|
|
509
|
+
kr: '비트 연산을 활용하여 집합, 상태 등을 효율적으로 표현하고 조작하는 기법입니다.',
|
|
510
|
+
en: 'A technique that uses bitwise operations to efficiently represent and manipulate sets and states.',
|
|
511
|
+
},
|
|
512
|
+
keywords: [
|
|
513
|
+
'bitmask',
|
|
514
|
+
'비트마스크',
|
|
515
|
+
'bitwise',
|
|
516
|
+
'비트연산',
|
|
517
|
+
'부분집합',
|
|
518
|
+
'상태압축',
|
|
519
|
+
],
|
|
520
|
+
categories: ['math', 'dp', 'bit'],
|
|
521
|
+
parent: 'algorithms',
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
key: 'geometry',
|
|
525
|
+
name: { kr: '기하 (Geometry)', en: 'Geometry' },
|
|
526
|
+
description: {
|
|
527
|
+
kr: '점, 선, 다각형 등 기하학적 객체들의 관계와 성질을 다루는 알고리즘입니다.',
|
|
528
|
+
en: 'Algorithms dealing with the relationships and properties of geometric objects such as points, lines, and polygons.',
|
|
529
|
+
},
|
|
530
|
+
keywords: ['geometry', '기하', '좌표', 'ccw', '교차 판별'],
|
|
531
|
+
categories: ['geometry'],
|
|
532
|
+
parent: 'algorithms',
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
key: 'convexHull',
|
|
536
|
+
name: { kr: '볼록 껍질 (Convex Hull)', en: 'Convex Hull' },
|
|
537
|
+
description: {
|
|
538
|
+
kr: '주어진 점들을 모두 포함하는 가장 작은 볼록 다각형을 구하는 알고리즘입니다.',
|
|
539
|
+
en: 'An algorithm that finds the smallest convex polygon enclosing all given points.',
|
|
540
|
+
},
|
|
541
|
+
keywords: ['convex hull', '볼록껍질', 'graham scan', '그라함 스캔'],
|
|
542
|
+
categories: ['geometry'],
|
|
543
|
+
parent: 'algorithms',
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
key: 'bigNumber',
|
|
547
|
+
name: { kr: '큰 수 (Big Number)', en: 'Big Number' },
|
|
548
|
+
description: {
|
|
549
|
+
kr: '일반 정수 자료형으로 표현할 수 없는 매우 큰 수를 다루는 알고리즘입니다.',
|
|
550
|
+
en: 'Algorithms for handling very large numbers that cannot be represented by standard integer types.',
|
|
551
|
+
},
|
|
552
|
+
keywords: ['big number', '큰 수', 'arbitrary precision', '임의 정밀도'],
|
|
553
|
+
categories: ['math'],
|
|
554
|
+
parent: 'algorithms',
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
key: 'bellmanFord',
|
|
558
|
+
name: { kr: '벨만-포드 (Bellman-Ford)', en: 'Bellman-Ford' },
|
|
559
|
+
description: {
|
|
560
|
+
kr: '음수 가중치가 있는 그래프에서도 단일 출발점으로부터 최단 경로를 구할 수 있는 알고리즘입니다.',
|
|
561
|
+
en: 'An algorithm that finds the shortest path from a single source even in graphs with negative edge weights.',
|
|
562
|
+
},
|
|
563
|
+
keywords: [
|
|
564
|
+
'bellman-ford',
|
|
565
|
+
'벨만포드',
|
|
566
|
+
'음수 간선',
|
|
567
|
+
'negative edge',
|
|
568
|
+
'최단경로',
|
|
569
|
+
],
|
|
570
|
+
categories: ['graph'],
|
|
571
|
+
parent: 'algorithms',
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
key: 'pattern',
|
|
575
|
+
name: { kr: '패턴 (Pattern)', en: 'Pattern' },
|
|
576
|
+
description: {
|
|
577
|
+
kr: '수열, 도형 등에서 규칙적인 패턴을 발견하고 활용하여 문제를 해결하는 알고리즘입니다.',
|
|
578
|
+
en: 'Algorithms that solve problems by discovering and leveraging regular patterns in sequences or shapes.',
|
|
579
|
+
},
|
|
580
|
+
keywords: ['pattern', '패턴', '규칙', '규칙성'],
|
|
581
|
+
categories: ['basic', 'string'],
|
|
582
|
+
parent: 'algorithms',
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
key: 'planeSweeping',
|
|
586
|
+
name: { kr: 'Plane Sweeping', en: 'Plane Sweeping' },
|
|
587
|
+
description: {
|
|
588
|
+
kr: '가상의 직선을 이동시키며 기하학적 문제를 효율적으로 처리하는 알고리즘입니다.',
|
|
589
|
+
en: 'An algorithm that efficiently solves geometric problems by sweeping a virtual line across the plane.',
|
|
590
|
+
},
|
|
591
|
+
keywords: ['plane sweeping', '평면스위핑', 'sweep line', '스윕라인'],
|
|
592
|
+
categories: ['geometry'],
|
|
593
|
+
parent: 'algorithms',
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
key: 'dataStructure',
|
|
597
|
+
name: { kr: '자료구조 (Data Structure)', en: 'Data Structure' },
|
|
598
|
+
description: {
|
|
599
|
+
kr: '데이터를 효율적으로 저장하고 관리하기 위한 구조와 관련된 문제들을 모았습니다.',
|
|
600
|
+
en: 'Problems related to structures for efficiently storing and managing data.',
|
|
601
|
+
},
|
|
602
|
+
keywords: ['data structure', '자료구조', 'linked list', 'tree', 'graph'],
|
|
603
|
+
categories: ['data-structure'],
|
|
604
|
+
parent: 'algorithms',
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
key: 'string',
|
|
608
|
+
name: { kr: '문자열 (String)', en: 'String' },
|
|
609
|
+
description: {
|
|
610
|
+
kr: '문자열의 탐색, 비교, 변환 등 문자열 처리와 관련된 알고리즘입니다.',
|
|
611
|
+
en: 'Algorithms related to string processing such as searching, comparing, and transforming strings.',
|
|
612
|
+
},
|
|
613
|
+
keywords: ['string', '문자열', 'kmp', '문자열 처리'],
|
|
614
|
+
categories: ['string'],
|
|
615
|
+
parent: 'algorithms',
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
key: 'gets',
|
|
619
|
+
name: { kr: 'Gets', en: 'Gets' },
|
|
620
|
+
description: {
|
|
621
|
+
kr: '공백이나 개행이 포함된 문자열 입력을 처리하는 문제들을 모았습니다.',
|
|
622
|
+
en: 'Problems that involve handling string input containing spaces or newlines.',
|
|
623
|
+
},
|
|
624
|
+
keywords: ['gets', '입력', '공백 입력', 'readline'],
|
|
625
|
+
categories: ['basic', 'string'],
|
|
626
|
+
parent: 'algorithms',
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
key: 'shape',
|
|
630
|
+
name: { kr: '문자 도형 (Shape)', en: 'Shape' },
|
|
631
|
+
description: {
|
|
632
|
+
kr: '문자를 이용하여 특정 도형이나 패턴을 출력하는 문제들을 모았습니다.',
|
|
633
|
+
en: 'Problems that require printing specific shapes or patterns using characters.',
|
|
634
|
+
},
|
|
635
|
+
keywords: ['shape', '별찍기', '문자 도형', 'pattern output'],
|
|
636
|
+
categories: ['basic', 'string'],
|
|
637
|
+
parent: 'algorithms',
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
key: 'set',
|
|
641
|
+
name: { kr: 'Set', en: 'Set' },
|
|
642
|
+
description: {
|
|
643
|
+
kr: '중복 없는 원소들의 집합 자료구조를 활용하는 문제들을 모았습니다.',
|
|
644
|
+
en: 'Problems that utilize the set data structure containing unique elements.',
|
|
645
|
+
},
|
|
646
|
+
keywords: ['set', '집합', '중복제거', 'unique'],
|
|
647
|
+
categories: ['data-structure'],
|
|
648
|
+
parent: 'algorithms',
|
|
649
|
+
},
|
|
650
|
+
{
|
|
651
|
+
key: 'regulation',
|
|
652
|
+
name: { kr: 'Regulation' },
|
|
653
|
+
description: {
|
|
654
|
+
kr: '주어진 규칙이나 제약 조건에 따라 문제를 해결하는 알고리즘입니다.',
|
|
655
|
+
en: 'Algorithms that solve problems according to given rules or constraints.',
|
|
656
|
+
},
|
|
657
|
+
keywords: ['regulation', '규칙', '제약조건'],
|
|
658
|
+
categories: ['basic'],
|
|
659
|
+
parent: 'algorithms',
|
|
660
|
+
},
|
|
661
|
+
{
|
|
662
|
+
key: 'convexHullTrick',
|
|
663
|
+
name: {
|
|
664
|
+
kr: '볼록 껍질 트릭 (Convex Hull Trick)',
|
|
665
|
+
en: 'Convex Hull Trick',
|
|
666
|
+
},
|
|
667
|
+
description: {
|
|
668
|
+
kr: '동적 계획법 점화식에서 일차 함수의 최솟값·최댓값을 볼록 껍질을 이용해 빠르게 계산하는 최적화 기법입니다.',
|
|
669
|
+
en: 'A DP optimization technique that uses convex hull to quickly compute the minimum or maximum of linear functions.',
|
|
670
|
+
},
|
|
671
|
+
keywords: ['convex hull trick', '볼록껍질 트릭', 'cht', 'dp 최적화'],
|
|
672
|
+
categories: ['dp', 'geometry'],
|
|
673
|
+
parent: 'algorithms',
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
key: 'DnCOptimization',
|
|
677
|
+
name: {
|
|
678
|
+
kr: 'DnC 최적화 (Divide and Conquer Optimization)',
|
|
679
|
+
en: 'Divide and Conquer Optimization',
|
|
680
|
+
},
|
|
681
|
+
description: {
|
|
682
|
+
kr: '동적 계획법의 점화식에서 최적 분할점이 단조 증가하는 성질을 이용한 최적화 기법입니다.',
|
|
683
|
+
en: 'A DP optimization technique that exploits the monotonicity of the optimal split point in recurrence relations.',
|
|
684
|
+
},
|
|
685
|
+
keywords: [
|
|
686
|
+
'divide and conquer optimization',
|
|
687
|
+
'dnc optimization',
|
|
688
|
+
'dp 최적화',
|
|
689
|
+
],
|
|
690
|
+
categories: ['dp', 'recursion'],
|
|
691
|
+
parent: 'algorithms',
|
|
692
|
+
},
|
|
693
|
+
{
|
|
694
|
+
key: 'dijkstraHeap',
|
|
695
|
+
name: { kr: '다익스트라 (Dijkstra + Heap)', en: 'Dijkstra (+ Heap)' },
|
|
696
|
+
description: {
|
|
697
|
+
kr: '우선순위 큐(힙)를 활용하여 다익스트라 알고리즘의 시간 복잡도를 개선한 구현입니다.',
|
|
698
|
+
en: 'An optimized implementation of Dijkstra using a priority queue (heap) to improve time complexity.',
|
|
699
|
+
},
|
|
700
|
+
keywords: ['dijkstra', '다익스트라', 'heap', 'priority queue', '최단경로'],
|
|
701
|
+
categories: ['graph', 'data-structure'],
|
|
702
|
+
parent: 'algorithms',
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
key: 'hash',
|
|
706
|
+
name: { kr: '해싱 (Hash)', en: 'Hash' },
|
|
707
|
+
description: {
|
|
708
|
+
kr: '해시 함수를 이용하여 데이터를 빠르게 저장하고 검색하는 자료구조 기반 알고리즘입니다.',
|
|
709
|
+
en: 'Algorithms based on hash functions for fast data storage and retrieval.',
|
|
710
|
+
},
|
|
711
|
+
keywords: ['hash', '해싱', 'hashmap', '해시맵', 'dictionary'],
|
|
712
|
+
categories: ['data-structure'],
|
|
713
|
+
parent: 'algorithms',
|
|
714
|
+
},
|
|
715
|
+
];
|
|
716
|
+
//# sourceMappingURL=algorithms.js.map
|