Advent of Code 2022 - Day 1: Calorie Counting

:: programming, puzzle, racket

Each day will have some preliminary setup code:

1
2
3
#lang iracket/lang #:require racket
(require "../advent.rkt")
(require threading)

Day 1 - Part 1

We’re given the following sample data:

1000
2000
3000

4000

5000
6000

7000
8000
9000

10000

This list represents the Calories of the food carried by five Elves:

  • The first Elf is carrying food with 1000, 2000, and 3000 Calories, a total of 6000 Calories.
  • The second Elf is carrying one food item with 4000 Calories.
  • The third Elf is carrying food with 5000 and 6000 Calories, a total of 11000 Calories.
  • The fourth Elf is carrying food with 7000, 8000, and 9000 Calories, a total of 24000 Calories.
  • The fifth Elf is carrying one food item with 10000 Calories.

Find the Elf carrying the most Calories. How many total Calories is that Elf carrying?

Plotting in a Racket Notebook

:: programming, racket

I recently started experimenting with the Racket notebook package, IRacket. Notebooks are handy for experimentation and visualization, so I wanted to be able to display a plot. I discovered that (require plot) did not work, but if I changed that slightly to (require plot/pict), I was able to display a plot in the notebook.

Advent of Code 2022 - Day 0 - Preparation

:: programming, racket, puzzle

Table of Contents

Now that I have a couple years experience with Advent of Code, I’d like to get a little more organized prior to the contest. I’m hoping to create a blog post for most of the days, and I think I’ll make use of Ryan Culpepper’s IRacket package this year. IRacket allows creating Jupyter notebooks, and by exporting them as markdown files, they can be copy/pasted directly into a Frog static site generator file for a blog post. I thought about using only a notebook this year, but I think I would miss having a clutter-free version of just the code.

Advent of Code 2022

:: programming, racket, python, javascript, puzzle

Advent of Code 2022 will start on December 1. This will be my third year, after participating in 2021 and 2020.

I hope to have time to code all of the solutions in Racket, my favorite programming language, and I should be able to translate some of them into Python and/or Javascript as a learning exercise.

My primary goal is to create an elegant Racket solution for each day’s puzzle that is clear, commented and tested. For some of the days, I may also create variants that emphasize performance or conciseness.

How do differential gears work?

:: video, engineering

This instructional movie from 1937 explains how a car’s differential gears work (to allow the driving wheels to turn at different speeds when cornering) in very easy to understand way! Modern tutorials could learn a lot from this.