1.) Make sure you 100% understand the problem. Ask the right questions, to get a clear picture of the problem.
2.) Divide and conquer: Break a big problem into smaller sub-problems
3.) Don't be afraid to do as much research as you have to
4.) For bigger problems, write a pseudo-code before writing the actual code