**Category** |
**Subcategory** |
**Distinguishing Features** |

Geometry |

Packing Problems |
Fitting some shaped item into another shaped item |

2-D |
Can 2-D object X fit in/pass through 2-D object Y |

3-D Perspective |
What is visible, are two items the same |

Rotation/Transformation |
What happens when a series of rotations/transformations are applied to an object |

Lines |
Intersection of lines |

Curves |
Circles, Ellipses, Cones, ... |

Triangles |
Circumference, area, Right, Isosceles, Equilateral, Scalene, Non-Euclidean |

Quadrilaterals |
Square, rectangle, parallelogram, rhombus, trapezoid |

Polygons |
Working with many sided figures |

Math |

Combinations/Permutations |
Solve some puzzle that requires calculation/production of acombination/permutation of items |

Simultaneous Equations |
Solve a situation with N unknowns (inequalities also) |

Algebraic |
Problems that require use of algebra to solve |

Number Theory | Problems tht require knowledge of number theory to solve |

Trig Relations |
Problems tht require trig relationships to solve |

Numerical Relationship |
Primes, Pascal's triangle, Fibanacci Series, Factorial |

Trig Relations |
Problems that require trig relationships to solve |

String |

String Containment |
Is some string(s) contained in another string(s)/matrix |

String Manipulation |
Heavy string coding: reversing strings, substringing, ... |

Parsing |
Problems that rely on parsing input data |

Algorithmic |

Sorting/Searching |
Problems that need data sorted or searched |

Data Structures |
Problems that require understanding of specific data structures tos solve |

Backtracking |
Problems that require you to be able to backtrack to solve |

Network |
Minimum/maximum distance... |

Graph Problems |
Problems that require you to be able to traverse and translate graphs to solve |

Grids |
XY grids |

Flood Fill |
Filling a bounded region |

Recursive |
Recursion -- cool |

Greedy Algorithms |
Solve problem by taking best option at each possible step |

Other |

Brute Force |
Just code away |

Inventory |
Classic start with a list, add/remove/modify list, display list of state whether operations are possible |

Dynamic Programming |
Can you think sideways... |