My suggestion is to never look at the solution until you get your own to work. That way you will feel you accomplished something and then look at the other solutions to see where you could optimize your own.
Since we have this great forum, it is much better for you to post your code on the forum and ask questions about next steps. You can always preface your post with "Please do not give me the solution, but give me a hint", so people hopefully will not ruin your learning experience.
If you don’t have a clue how to start on a particular challenge, you need to try to write out the steps on paper or type them out somewhere to capture the logic of your algorithm. You can always post your logic steps on the forum too, and we will be glad to give you hints about things to think about or maybe flaws in your current logic.