nerdy
nerdy에는 Arcadi4에서 수집한 skills 31개가 있으며, 저장소 수준 직업 범위와 사이트 내 skill 상세 페이지를 제공합니다.
이 저장소의 skills
CSAPP; "Computer Systems A Programmer's Perspective" by Randal E. Bryant and David R. O'Hallaron, covering computer architecture, systems programming, and performance optimization.
TaPL; the foundational computer science textbook "Types and Programming Languages" by Benjamin Pierce, covering type systems, programming language theory, lambda calculus, and more.
Use when approximating NP-hard optimization problems, proving approximation ratios, checking PTAS or FPTAS claims, or reviewing CLRS vertex cover, metric TSP, set cover, randomized MAX-3-CNF, LP rounding, subset-sum trimming, bin packing, scheduling, clique, matching, spanning-tree, or knapsack approximation arguments.
Use when working with CLRS, Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein, including algorithm design, data structures, asymptotic analysis, recurrences, proof style, or textbook-grounded algorithm explanations.
SICP; the classic computer science textbook "Structure and Interpretation of Computer Programs" by Harold Abelson and Gerald Jay Sussman.
Use when classifying decision problems as P, NP, NP-hard, NP-complete, or co-NP; proving polynomial-time reductions; reviewing SAT, 3-CNF-SAT, CLIQUE, VERTEX-COVER, HAM-CYCLE, TSP, SUBSET-SUM, encoding, or pseudo-polynomial complexity arguments.
Use when answering CLRS-style machine-learning algorithm questions about k-means clustering, Lloyd's procedure, multiplicative weights, weighted majority, online experts, gradient descent, projected gradient descent, convex optimization, linear regression, or regularization.
Use when solving exact pattern search, rolling-hash matching, finite-automaton matching, KMP prefix-function problems, suffix-array queries, LCP-array tasks, longest repeated/common substring problems, cyclic rotation tests, or Burrows-Wheeler transform exercises.
Use when multiplying polynomials, using coefficient or point-value representations, applying DFT or FFT, reasoning about roots of unity, convolution, FFT circuits, or exact modular Fourier transforms.
Use when formulating, solving, proving, or reviewing linear-programming models, including standard form, feasibility, boundedness, simplex intuition, graph and flow LPs, duality, weak or strong duality, Farkas certificates, complementary slackness, or integer-LP caveats.
Use when solving CLRS-style matrix-operation problems involving linear systems, LU or LUP decomposition, pivoting, matrix inversion, symmetric positive-definite matrices, Schur complements, least-squares approximation, normal equations, pseudoinverses, or tridiagonal systems.
Use when analyzing online algorithms, competitive analysis, adversarial input, list update with move-to-front, online caching, paging, randomized marking, or ski-rental/elevator-style rent-or-buy decisions.
Use when analyzing fork-join parallel algorithms, work/span bounds, greedy scheduling, slackness, determinacy races, parallel loops, matrix multiplication, merge sort, reductions, scans, stencils, or randomized parallel algorithms.
Use when solving, proving, implementing, or reviewing bipartite matching, Hopcroft-Karp, stable marriage, Gale-Shapley, Hungarian assignment, feasible labels, equality subgraphs, or augmenting-path matching arguments.
Use when solving, proving, implementing, or reviewing flow-network problems, including maximum flow, residual networks, augmenting paths, cuts, Ford-Fulkerson, Edmonds-Karp, bipartite matching reductions, vertex capacities, multiple sources and sinks, or min-cut certificates.
Use when solving, proving, implementing, or reviewing weighted shortest-path problems, including single-source or all-pairs shortest paths, relaxation, negative edges or cycles, Dijkstra, Bellman-Ford, DAG paths, Floyd-Warshall, Johnson, difference constraints, transitive closure, arbitrage, or graph-path reductions.
Use when solving, proving, implementing, or reviewing minimum spanning tree problems, including safe edges, cuts, light edges, Kruskal, Prim, union-find, priority queues, bottleneck trees, second-best trees, or MST update questions.
Use when representing graphs or solving graph-search problems with adjacency lists, adjacency matrices, breadth-first search, depth-first search, topological sorting, strongly connected components, edge classification, reachability, articulation points, bridges, biconnected components, or Euler tours.
Use when disjoint sets, union-find, dynamic connectivity, connected components, weighted union, union by rank, path compression, inverse Ackermann bounds, linked-list set representations, offline minimum, or offline LCA reasoning appears.
Use when reasoning about B-trees, external-memory indexes, disk-block search trees, 2-3-4 trees, B-tree height bounds, node splits, top-down insertion, deletion cases, or database/storage index choices.
Use when augmenting balanced trees or dynamic sets with maintained metadata, order-statistic trees, interval trees, rank/select queries, overlap search, red-black-tree augmentation theorems, or production choices around custom indexed structures.
Use when analyzing sequences of data-structure operations with aggregate analysis, accounting credits, potential functions, binary counters, multipop stacks, dynamic tables, resizing policies, or amortized versus average-case reasoning
Use when solving or proving greedy algorithms, including activity selection, fractional knapsack, Huffman coding, offline caching, exchange arguments, greedy-choice property, optimal substructure, or deciding whether dynamic programming is required instead.
Use when reasoning about binary search trees, red-black trees, ordered dynamic sets, predecessor or successor queries, transplant-based deletion, rotations, balance invariants, or production ordered-container choices.
Use when analyzing algorithm running time, asymptotic notation, Big O, Omega, Theta, little-o, little-omega, growth-rate comparisons, loop bounds, recurrence terms, or textbook-style asymptotic exercises.
Use when analyzing divide-and-conquer algorithms, solving recurrences, applying Master theorem or Akra-Bazzi, using recursion trees or substitution, comparing matrix multiplication with Strassen, or checking theorem applicability under misleading shortcuts.
Use when solving dynamic programming problems, deriving optimal substructure recurrences, choosing memoization or bottom-up tables, reconstructing optimal choices, analyzing overlapping subproblems, LCS, matrix-chain multiplication, rod cutting, optimal BSTs, or DP production tradeoffs.
Use when reasoning about elementary data structures, dynamic sets, arrays, matrices, stacks, queues, linked lists, sentinels, rooted trees, representation choices, invariants, locality, or pointer-based tradeoffs under practical engineering constraints.
Use when choosing, analyzing, or implementing hash tables, direct addressing, chaining, open addressing, universal hashing, load factors, probe bounds, deletion behavior, or cache-aware dictionary design under practical engineering constraints.
Use when analyzing randomized algorithms, probabilistic analysis, indicator random variables, hiring and secretary problems, random permutations, balls-and-bins, birthday paradox, streaks, or average-case versus expected-time reasoning.
Use when choosing or analyzing sorting, heaps, priority queues, linear-time integer/distribution sorting, quicksort, selection, medians, quantiles, top-k, or order-statistic algorithms under practical engineering constraints.