Last weekend I competed in the qualification round of Google Code Jam. I went into it cold (i.e. not having read any of the previous problem sets), and found it a little harder than I expected. The first 2 questions were easy. The last 2 were easy in principle, but I found my implementation didn't scale well to the large data sets, given the limits involved. I still got well over the required score to get me into the next round.
My take-aways from the process are as follows:
-
Develop some scripts/templates to automate the fairly manual parts of solving each problem. I spent some time writing file parsing code. I should just use pre-built functions for this (even fscanf). Have my Makefile pre-built.
-
Think more about the limits when I build the algorithm. How will the algorithm scale with more data?
-
The last problem was a combinatrics problem. Read more about the different algorithms for solving these kinds of problems.
-
I found it interesting that all the top entries were coded in C++. That is also what I am using, which is nice.
I really enjoyed the experience, and am looking forward to the next round!