My solutions -- not the best but I learn a lot to understand the best