DEV Community

Cover image for The Ideal Stocking Stuffer
Robert Mion
Robert Mion

Posted on

The Ideal Stocking Stuffer

Advent of Code 2015 Day 4

Part 1

  1. How about another game of Chess?
  2. Re-writing...
  3. Waiting...

How about another game of Chess?

  • This puzzle is déjà vu!
  • I solved it eight times as part of 2016 Day 5!
  • So...solving it once should just be another waiting game!

Re-writing...

My algorithm in pseudocode:

Import my MD5 library
Set index to 0
Do as long as the first five characters in the generated hash are not zeros
  Increment index by 1
Enter fullscreen mode Exit fullscreen mode

My algorithm in JavaScript:

const MD5 = require('crypto-js/md5')
let index = 0, input = 'abcdef'
while (MD5(input + index).toString().slice(0,5) !== '00000') index++
return index
Enter fullscreen mode Exit fullscreen mode

Waiting...

  • It took a couple of seconds to run
  • Then generated the correct answer!

Part 2

Six zeroes? No problem!

My algorithm in JavaScript:

const MD5 = require('crypto-js/md5')
let index = 0, input = 'abcdef'
while (MD5(input + index).toString().slice(0,6) !== '000000') index++
return index
Enter fullscreen mode Exit fullscreen mode
  • It took several seconds to run
  • Then generated the correct answer!

I did it!!

  • I solved both parts!
  • Using a snippet of an algorithm I wrote in a nearly-identical puzzle from the prior year!
  • I wrote what may be my shortest Advent of Code program yet, at just four lines when condensed!

Sentry blog image

How I fixed 20 seconds of lag for every user in just 20 minutes.

Our AI agent was running 10-20 seconds slower than it should, impacting both our own developers and our early adopters. See how I used Sentry Profiling to fix it in record time.

Read more

Top comments (0)

nextjs tutorial video

Youtube Tutorial Series 📺

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series 👀

Watch the Youtube series

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay