Advent of Code 2017

I'm a few days late, but this is just a quick reminder that Advent of Code has returned. This is a daily coding challenge where you are tasked to solve certain problems. No particular language is required, and heck, if you want to do it on paper you could give that a shot as well. This is my third year participating and it quickly goes from simple to "woah, how in the heck do I solve that?!?" Last year I didn't complete the entire set of puzzles, but I still enjoyed the heck out of it. I fully recommend "cheating" if you get stuck. The subreddit typically has solutions up way before I even get a chance to make an attempt.

Last year I tried to blog about all my solutions but - yeah - that was a mistake. ;) I'm still posting my solutions to GitHub though: https://github.com/cfjedimaster/adventofcode. You're welcome to look at - and make fun of - my solutions.

Here is an example of the type of challenges you can expect - in this case - the very first one:

It goes on to explain that you may only leave by solving a captcha to prove you're not a human. Apparently, you only get one millisecond to solve the captcha: too fast for a normal human, but it feels like hours to you.

The captcha requires you to review a sequence of digits (your puzzle input) and find the sum of all digits that match the next digit in the list. The list is circular, so the digit after the last digit is the first digit in the list.

For example:

  • 1122 produces a sum of 3 (1 + 2) because the first digit (1) matches the second digit and the third digit (2) matches the fourth digit.
  • 1111 produces 4 because each digit (all 1) matches the next.
  • 1234 produces 0 because no digit matches the next.
  • 91212129 produces 9 because the only digit that matches the next one is the last digit, 9.

What is the solution to your captcha?

This one was pretty easy - but it quickly ramps up.

Like This?

If you like this article, please consider visiting my Amazon Wishlist or donating via PayPal to show your support. You can also subscribe to the email feed to get notified of new posts.