october-2013
A+ Computer Science October 2013
Computer Science Competition Hands-On Programming Set
Problem 1 - Mean
Super easy. I had problems with this only because I hadn't touched Java in a while and had to relearn better ways of inputting data from a file. I still want to implement a system which allows better files, but that requires a lot more effort from me.
I also had to re-figure-out how to do floating point rounding without a function which was effectively round(double value, int places=0). Thanks Stack Overflow, again.
Problem 2 - Twitter
Unexpectedly easy. Needs no mention.
Problem 3 - Snake
This is the second hardest one in the packet, but it really doesn't have much to it. I had to use classes and figure all that out, but it was a decent exercise overall. I made a input generator for this in Python for shits n' giggles, but it didn't work too well in the end, I believe.
Problem 4 - Similar
Extremely easy, but I wish we had a larger input set so I could make sure it actually works properly. My solution could probably break if a input did not match my expectations.
Problem 5 - Refraction
Super easy, just had to write down equations on paper and remember that it's asin not sin-1 like on the calculator. Interesting, but not worth mentioning.
Problem 6 - DoubleT
Wow. I spent more time on this, minutes, more than I ever should have. Hooray.
Problem 7 - CSMEals
Interesting problem, but like Problem 3, has very little to it that I can specify. Encountered weird problems while optimizing that made debugging a pain.
Problem 8 - Climb
Again, super easy.
Problem 9 - Sexy
I've never seen the word "Sexy" in a school enviroment/paper before. Geegee.
Problem 10 - Synonyms
I really liked this problem. Probably the third hardest in the packet for me.
Problem 11 - Triple
Extraordinarily hard, dear god, I hope no one else had the chance of being forced to solve this problem. Multiplying by 3, oh dear god!..
Problem 12 - Checkers
The hardest problem in the packet. I spent a lot of time debugging how to do this problem and deciding how to do it. I probably spent an hour or so total just looking at a profiler and seeing how the values changed.
The only things I could mention about this problem is that, I forgot that you can only move forward/backward depending on which side you start on.
My solution allows you to switch to Red or Black checkers (though the code needs to be adjusted slightly).