문제 분류 부록 - 75개 전부

유명한 문제는 75개입니다 에서 본 목록입니다. 문제마다 Input, Output 을 한 줄씩 적었습니다. 이름만으로는 뭘 하는 문제인지 알 수 없는 것들이 많아서요.

원문이 아니라 제가 줄여 쓴 것입니다. 정확한 정의는 Stony Brook Algorithm Repository(algorist.com)의 각 항목에 있습니다.

Data Structures

문제InOut
Dictionariesn records, each with a keya structure that finds, inserts and deletes a record by its key
Priority Queuesrecords with ordered keysa structure that always hands back the smallest, and stays fast as records come and go
Suffix Trees and Arraysa reference stringa structure that finds every place a query string sits inside it
Graph Data Structuresa grapha representation that is small to store and quick to walk
Set Data Structuresa universe of objects and a family of subsetsa representation that tests membership and takes unions and intersections quickly
Kd-Treesn points in k dimensionsa tree splitting the space so each point sits in its own region

Numerical Problems

문제InOut
Solving Linear Equationsa matrix A and a vector bthe x with A·x = b
Bandwidth Reductiona graph that represents a sparse matrixthe ordering of vertices that makes the longest edge as short as possible
Matrix Multiplicationtwo matricestheir product
Determinants and Permanentsan n x n matrixits determinant, or its permanent
Constrained and Unconstrained Optimizationa function of n variablesthe point where it is largest, or smallest
Linear Programminglinear inequalities and a linear objectivevalues that satisfy all of them and make the objective as large as possible
Random Number Generationnothing, or a seeda sequence of integers that behaves like a random one
Factoring and Primality Testingan integer nwhether n is prime, and if not, its factors
Arbitrary-Precision Arithmetictwo integers too big for a machine wordtheir sum, difference, product and quotient
Knapsack Problemitems with a size and a value, and a capacitythe subset of greatest value that still fits
Discrete Fourier Transformn values sampled from a function at even intervalsthe same signal written as a sum of frequencies

Combinatorial Problems

문제InOut
Sortingn itemsthe same items in increasing order
Searchingn keys and a query keywhere the query sits among them
Median and Selectionn numbersthe one with half below it and half above
Generating Permutationsan integer nevery ordering of n things, or a random one, or the next one
Generating Subsetsan integer nevery subset of 1..n, or a random one, or the next one
Generating Partitionsan integer nevery way to split n, or a random one, or the next one
Generating Graphsa vertex count, an edge count, or an edge probabilitya graph that meets them — every such graph, a random one, or the next
Calendrical Calculationsa month, a day and a yearthe weekday it fell on
Job Schedulingjobs with "this one before that one" constraintsa schedule finishing in the least time, or on the fewest machines
Satisfiabilityclauses built from ands, ors and nots on boolean variableswhether some assignment makes every clause true

Graph: Polynomial-time Problems

문제InOut
Connected Componentsa graph and a start vertexevery vertex and edge reachable from it
Topological Sortinga directed acyclic graphthe vertices in a row with every edge pointing right
Minimum Spanning Treea graph with weighted edgesthe cheapest set of edges that still connects everything
Shortest Patha weighted graph, a start s and an end tthe cheapest route from s to t
Transitive Closure and Reductiona directed graphan edge wherever a path exists, or the fewest edges that still let you reach the same places
Matchinga graph, possibly weightedthe largest set of edges sharing no vertex
Eulerian Cycle / Chinese Postmana graphthe shortest tour using every edge at least once
Edge and Vertex Connectivitya graph, optionally two verticesthe fewest edges or vertices you can remove to break it apart
Network Flowa graph with capacities, a source and a sinkthe most that can be pushed from source to sink
Drawing Graphs Nicelya grapha drawing that shows its structure
Drawing Treesa treea drawing of it
Planarity Detection and Embeddinga graphwhether it can be drawn with no edges crossing, and such a drawing

Graph: Hard Problems

문제InOut
Cliquea graphthe largest set of vertices all joined to each other
Independent Seta graphthe largest set of vertices with no edge between any two
Vertex Covera graphthe smallest set of vertices touching every edge
Traveling Salesman Problema weighted graphthe cheapest cycle through every vertex exactly once
Hamiltonian Cyclea graphan order visiting every vertex exactly once
Graph Partitiona weighted graph, a size bound and a cost bounda split into parts no bigger than the size bound, cutting no more than the cost bound
Vertex Coloringa grapha coloring of the vertices using the fewest colors, so that no two neighbors match
Edge Coloringa graphthe fewest colors for the edges so that edges meeting at a vertex differ
Graph Isomorphismtwo graphsa relabeling that turns one graph into the other, if such a relabeling exists
Steiner Treea graph and a subset of its verticesthe smallest tree connecting that subset
Feedback Edge/Vertex Seta directed graphthe fewest edges or vertices to remove so that no cycle is left

Computational Geometry

문제InOut
Robust Geometric Primitivesa point and a segment, or two segmentswhich side the point is on, or whether the segments cross — without rounding errors giving a wrong answer
Convex Hulln pointsthe smallest convex polygon holding them all
Triangulationa point set or a polyhedronits interior cut into triangles
Voronoi Diagramsn pointsthe region around each point closer to it than to any other
Nearest Neighbor Searchn points and a query pointthe closest one
Range Searchn points and a query polygonthe points falling inside it
Point Locationa plane cut into regions, and a query pointthe region it falls in
Intersection Detectionsegments, or two polygonswhich pairs cross, or the shape they share
Bin Packingitems with sizes, bins with capacitiesa packing using as few bins as possible
Medial-Axis Transforma polygonthe points inside that have more than one nearest point on the boundary — its skeleton
Polygon Partitioninga polygona cut into as few simple pieces as possible, usually convex ones
Simplifying Polygonsa polygon with n verticesone with fewer vertices that still looks like it
Shape Similaritytwo shapeshow alike they are
Motion Planninga robot, a room with obstacles, a start and an endthe shortest path that gets the robot across without hitting anything
Maintaining Line Arrangementsn lines and segmentsthe cells, edges and vertices they cut the plane into
Minkowski Sumtwo point sets or polygonsevery sum of a point from one and a point from the other

Set and String Problems

문제InOut
Set Coversubsets of a universethe fewest of them whose union is the whole universe
Set Packingsubsets of a universethe most of them that share no element
String Matchinga text and a patternwhere the pattern occurs
Approximate String Matchinga text, a pattern, and an edit budgetwhether the pattern appears somewhere after that many edits or fewer
Text Compressiona stringa shorter string the original can be rebuilt from
Cryptographya message and a keythe encrypted text, or the message back
Finite State Machine Minimizationa deterministic finite state machinethe smallest one that behaves the same way
Longest Common Substring/Subsequencea set of stringsthe longest run of characters appearing, in order, in all of them
Shortest Common Superstringa set of stringsthe shortest string containing every one of them