3 solutions of varying complexity and runtime