/Algorithms

An introduction to algorithmic problem-solving and algorithmic paradigms.

Primary LanguagePython

Algorithms

Each directory contains a separate problem that you'll be tasked with solving. Inside each directory, you'll find instructions for that problem, along with a test file as well as an empty skeleton file.

There isn't an official prescribed order for tackling the problems, though a subjective ranking of the given problems from easiest to hardest might go something like this:

  1. stock_prices
  2. recipe_batches
  3. eating_cookies
  4. rock_paper_scissors
  5. making_change
  6. [Stretch Problem] knapsack

For each problem, cd into the directory, read the instructions for the problem, implement your solution in the skeleton file, then test it using the provided test file.

The later problems definitely get progressively more difficult, especially when it comes to deriving a more performant solution. Don't feel bad if you aren't able to figure them out within the timeframe of the sprint. Again, always remember that so long as you put in an earnest effort into attempting to solve these problems, you're learning and getting better. Getting the 'right answer' is just the proverbial cherry on top of the sundae.

This is a two day project so plan your time accordingly!

Problem Solving Principles

When you're confronted with a problem you haven't encountered before, the general strategy (adapted from George Pólya's Problem Solving Principles) is as follows:

https://github.com/LambdaSchool/CS-Wiki/wiki/Lambda-Problem-Solving-Framework