Problem Solving & TopCoder

There's no argument in the fact that problem solving is a vital part of our intellectual functions and something that helps keep the mind sharp. Even something as simple as a logic puzzle, such as Sudoku, can help influence our mental well being.

One of my favorite activities to keep my problem solving sharp is participating in competitions at TopCoder, a company dedicated towards providing online competitions in algorithms, component design, and so on. I personally participate in the algorithms competitions. I highly recommend for everyone who can program in Java/C/C++/C# to participate from time to time, even if you feel like you have no chance. If anything, it will keep your mind and your programming skills sharp. The scoring system is based on time, so you learn to gear your mind towards immediately being able to categorize problems and then developing a solution.

Currently, the TopCoder Collegiate Challenge is underway, and I have surpassed my expectations this year. Last year I only made it past the qualification rounds, but this year I have matched that and even made it past two more online rounds. If I am able to make it pass two more online rounds then I would have the opportunity to go to Orland and compete against 47 of the world's finest. I don't expect to make it this far from a realistic point-of-view, not a pessimistic one. Nevertheless, I will definitely try my best to make it even further.

Don't think it's just your physical self that needs to be kept "in shape"!


Ondrej Certik said...

So how did you finish? I also tried just for fun, the marathon one (Traffic lights), the one which is going to end tomorrow. I am the only one who used Python, and I am 50th. :) It's pity it's against rules to cooperate, otherwise I would hand my code to you to improve it, since I don't have time to play with it anymore.

Jason G said...

Glad to hear you gave one of the problems a go. I actually haven't dealt with the marathon matches myself, but feel free to let me know what they're like! 50th out of nearly 300 is quite good, so congrats on that.

I didn't make it past the third round. I had a solution for the first problem which failed only a single system test case (and was only off by one...). I was also extremely close to finishing the second problem. Nevertheless, this is all good for experience, and I'm hoping for the next big competition I'll be prepared to go even further, maybe even to the on-site part of the competition.

Ondrej Certik said...

I didn't update my solution, so much more people got over me. But I was the best Python code and I beated many C++/Java ones, so that's all I wanted. :)

It's nice, because at the end, they show each solution, so you can study the tricks of your opponents.

Unfortunately, I don't have time for these games, I prefer to spent my free time on SymPy, that's much more useful.