I am new to CodeChef. I could solve just 3 out of 10 questions in the August Challenge. I could understand what some of the other questions wanted, but did not understand how to solve them. I am not a Computer Science student, so please tell me what I should read. I really want to get better at this. Thanks a lot.
P.S. : I know basic data structures and algorithms.
Start with Algorithms specially graph data structures… You can see the video lectures at Coursera.org or MIT OCW ,One of the most famous book regarding this is Algorithms by Cormen,
Some other good books are Steven Skienna’s Algorithm
Basically the more questions you practise the better you get at it.
The good sites are Spoj.com,Codechef practise,Topcoder practise rooms,
I would suggest you start with easy practise questions(go from bottom to top), learn simple things like sorting, hashing and other small tricks,pick up all the basic concepts and learn to optimise your solutions on the way. once you are comfortable with basic stuff then go to advanced stuff one at a time. whether you want to solve a question and then check out the theory or first see theory and then proceed to solving is a matter of personal choice. I would suggest the former as it makes you think more rather than just apply learnt codes. happy coding!
@tyrant: Programming contest is different, but there is an requirement of the first step from where can we start. In college it start with a course in Algorithms, Discrete mathematics and similar one. Its appreciable if u share experience with us, so we can learn and grow together.
@ravishanker: It’s programming “contest”, so I guess the minimum requirement should be the basic of Data Structure & Algorithm! However many of the theory we learned in school will not be useful unless we have practiced enough some of the patterns of programming online contest. And Cormen book is really heavy on theory. So I would start with solving easy practice problems at Codechef, then going back to read more theory as I go along.