Although i am good when it comes to problems which needs to discover patterns to solve it or some graph and other data structures algorithms... i found it very hard to solve problems which require dealing with a lot of corner cases and states . so what to do now to improve my self ? is it just to practice more on hard problems or to change the way of thinking and analyzing the problems ? please let me know and if you know some hard problems which related to that kind it will be great to tell me about it ... and thanks in advance !