Hacker News new | past | comments | ask | show | jobs | submit login

If you participated in previous editions, how much time did you have to dedicate each day, on average?

I've joined similar initiatives in the past, but I always end up giving up because of not being able to keep up the pace of sitting down _every_ day.

Yeah one could just solve the problems with some offset delay, or just skip all missed problems, but then it's not fun any more, and I'd wager that the same could be done any other time of the year too...




For others looking for their past year results, check out the URL: https://adventofcode.com/2017/leaderboard/self

Probably 15-20 minutes a day on average (edit: yep, my data from 2017 supports that), but with large spikes (and the average goes up towards the end of the month). (But I'm pretty quick — I was on the global leaderboard the last few years in a row.)

Edit: real numbers from 2017:

Excluding outliers and days I was absent at the start of the challenge: average 12.5 minutes for part 1 and 19.5 minutes for part 2.

Only excluding days where I was absent at the start of the challenge: average 16.25 minutes for part 1 and 23 minutes for part 2.

Edit2: 2016 was similar: 19-25 minutes excluding outliers, 23-35 minutes excluding days I missed the puzzle release by several hours.

If you're going for speed / leaderboard, Python is usually your best bet. Suggested libraries to be familiar with include:

stdlib: binascii, collections (especially defaultdict), fractions (gcd), itertools (combinations, combinations_with_replacement, permutations, product, izip, chain), md5, re, os/sys.

Non-std: networkx (graphs and shortest path), sympy (isprime()), numpy (efficient representation of large arrays).

It's useful to have a canned exhaustive tree search prepared (breadth/depth/"best"-first search).

You can use complex numbers to represent 2-dimensional coordinates and direction; turning the unit vector left and right involves multiplying by 1j and -1j, respectively, and movement is addition.

Oh, and sometimes pypy is faster enough that it can make a Python solution viable where otherwise it would have been too slow.


Well, I once spent about, oh, 6 hours writing and rewriting a solution and kept on getting the same wrong answer. Turned out I hadn't trimmed the input properly. Hey ho.

But, I'm slow, and I try to do it TDDish in a language I'm not so familiar with so there's that.

This year my aim is to finish all the problems by Nov 30th 2019 :) Even when I try go _as fast as I can_ (in ruby) I've only ever managed about 120th on the leaderboard. Now I just aim to have fun and learn as much as I can.

But to answer your actual question, if they're easy, within half an hour or less, hard ones, anywhere up to 5 or 6 hours (I'm slow, I'm OK with that :)


It varied a lot for me. The early ones I was generally able to do in 10 minutes or less. The middle ones generally took me 30-60 minutes - or I was blocked and it took me a lot longer. The later ones generally took an hour.

But - I wasn't just trying to solve them, I was also trying to write tests and refactoring when I was done - so ymmv. I also wasn't ever attempting to compete for the leaderboard.


I found foobar good for this reason... it's still time restricted but it's on your schedule not anyone else's. You get to choose when to start the next puzzle upon completing the current one - that said, the higher difficulty ones are on the order of weeks and those difficulty of puzzle can interfere with your work by filling your head.


Most problems are pretty quick to solve, maybe 30-60 minutes. Scheduling that time every day can be tough. Some problems are pretty tricky.

I still haven't solved all of 2017's, "some offset delay" indeed. I might not have solved all of 2016's for that matter - the closer it gets to Christmas, the less likely I am to touch a computer at all.


I have an hour-long train commute; I was able to solve most problems in that time.


they are not too bad, can get a bit more involved in the later stages ( I usually get too busy right before xmas and end up completing it after new year when I've got some time off), but I often use it as an opportunity ( like quite a few others here it seems ) to learn a new language so end up spending probably more time working out the language, because even if you solve it, you really want to make sure your code is idiomatic




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: