For what it’s worth, I really enjoyed the Google codejam this year,
but I’ve never participated in the Ruby Q. (though I did buy the
‘best of’ book)
Codejam did it for me because it forced me to timetable in a 2hr slot
to work on a few problems, as the rounds were time limited. That’s
not a direction I’m expecting Ruby Q. to take, but it is what
attracted me to the Codejam.
However, I really loved the problems too - they read very simply, and
it’s often easy to come up with a naive solution that won’t work on
large inputs due to algorithm complexity, so you must refine that
answer to get the best performance out of your program.
People mentioned games - one of the Round 2 problems this year
involved a digging and falling game that could be quite fun - the
question actually posed was to find the minimum number of digs to
complete the level. However, actually coding the game could be just
as much fun (and would give me an excuse to actually learn something
about rubygame).
Another problem involved calculating the probability for an animal to
be cute based on parsing a cuteness probability tree. I’d love to see
this one done in Ruby because the problem sounds like it plays to
Ruby’s strengths big time.
So, my 2 suggestions:
- re-use some of the google codejam problems
- Try to graduate the problems by using some constraints that make a
naive solution work, then relaxing those constraints so the expert
programmers get a tougher nut to crack.
Another good example of point 2 - in one round we were asked to
calculate the minimum power of a sprinkler such that any 2 sprinklers
would cover every plant in a greenhouse with water.
Easy: Given a fixed sprinkler size, determine if the sprinkler covers
the 3 plants in a given greenhouse
Normal: Determine the minimum sprinkler size that could cover all 3
plants in a given greenhouse
Hard: Determine the minimum sprinkler size that could cover up to 40
plants in a given greenhouse
These are all related problems of course - but the easy one should be
simple enough for most people to handle. The normal one uses a simple
case - with 3 plants the number of sprinkler positions to test is
small and manageable. With 40 plants the problem is much harder.
On Mon, Oct 5, 2009 at 12:43 PM, jonty [email protected] wrote:
programmers.
I would appreciate a mixture of some simple quizzes that allow me to
participate well but not ignoring the needs of the more expert so putting in
some quite challenging ones. Whether they are algorithm or real world I
don’t think is the issue, except that real world problems might need the
additional step of abstraction.
I agree with Harry K., some easier ones for me!
–
Paul S.
http://www.nomadicfun.co.uk
[email protected]