Skip to content

Solutions to the Advent of Code 2017 edition by Jeroen Heijmans.

Notifications You must be signed in to change notification settings

jeroenheijmans/advent-of-code-2017

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Advent of Code 2017

Solutions to the Advent of Code 2017 edition by Jeroen Heijmans.

Running

Open up index.html in a modern browser.

For maximum convenience I recommend using livereload by installing globally (npm install --global livereload) and then just serving the repository with livereload .. Then the index.html file will automatically reload if you tweak solutions.

Lessons

Here's what I learned (or noticed) each day.

  1. I will never write as funny backstories for puzzles as Eric. (Day 1: Inverse Captcha)
  2. Glad my language has functional constructs. (Day 2: Corruption Checksum)
  3. Sometimes the best code is no code. (Day 3: Spiral Memory)
  4. Parse input with code, not with manual editor-fu. (Day 4: High-Entropy Passphrases)
  5. Glad my language has imperative constructs. (Day 5: A Maze of Twisty Trampolines, All Alike)
  6. Mutable data structures can ruin your day. (Day 6: Memory Reallocation)
  7. Muscle memory for your chosen language is important. (Day 7: Recursive Circus)
  8. Use regexes! But now you have three puzzles... (Day 8: I Heard You Like Registers)
  9. Pre-processing can be very important. (Day 9: Stream Processing)
  10. I am terrible at reading comprehension. (Day 10: Knot Hash)
  11. I am really terrible at reading comprehension. (Day 11: Hex Ed)
  12. My language of choice has constructs I never knew about! (Day 12: Digital Plumber)
  13. Transforming problems into other problems before solving them can help. (Day 13: Packet Scanners)
  14. Don't throw away code. (Day 14: Disk Defragmentation, Knot Hash reuse)
  15. Learn from other people's solutions. (Day 15: Dueling Generators)
  16. Screw you, off-by-one errors. Screw you n+1 times!! (Day 16: Permutation Promenade)
  17. Circular buffers take some practice. (Day 17: Spinlock)
  18. Emulating low-level code is a thing apart. (Day 18: Duet)
  19. Advent of Code is aMAZEing! (Day 19: A Series of Tubes)
  20. Guesstimating the solution can sometimes make you effective. (Day 20: Particle Swarm)
  21. TDD to the rescue when 2D array manipulation turns out to be too hard. (Day 21: Fractal Art)
  22. Data Structures are more important than language features. (Day 22: Sporifica Virus)
  23. I am really terrible at low-level code. (Day 23: Coprocessor Conflagration)
  24. Modern hardware "allows" you to write less-performant, more readable code. (Day 24: Electromagnetic Moat)
  25. Private Leaderboards are equal parts Skill, Vigilance, Timezone, Reading Comprehension, Free Time, and Fun :D (Day 25: The Halting Problem)

Compendium Repo

I've created a Google Chrome Extension to spice up your private leaderboard page with graphs. It is open source if you want to contribute!

Here's direct links to every year's solutions I have so far:

About

Solutions to the Advent of Code 2017 edition by Jeroen Heijmans.

Resources

Stars

Watchers

Forks

Packages

No packages published