Skip to content

dshemetov/advent-of-code-solutions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Advent of Code Solutions

Advent of Code is a great set of Christmas-themed coding challenges.

Usage

Uses uv for project management.

# Install uv (Linux/MacOS)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install Python, venv, and dependencies
uv sync

# Alias the run command for convenience
alias advent="uv run python -m advent"

# Set AoC cookie in .env
advent set-cookie

# Print the answer to puzzle 2021 day 2 part b
advent solve -y 2021 -d 2 -p b

# Print the answer to current year's day 2 (both parts)
advent solve -d 21

# Clear cached answer and solve again
advent solve -y 2021 -d 2 -c

# See help for more
advent solve --help

Stats

Background

I first got into Advent of Code over the 2015 Christmas holiday with my friend Evin at his family home in LA. After a few days of only playing SSX Tricky and drinking peppermint schnapps, we were ready to re-engage our brains. Evin got functional with JavaScript and I was just getting started with Python. Doing puzzles while cozy with friends is one of my favorite things to do.

  • AoC 2023: 7/50 Python.
  • AoC 2022: 12/50 Python (with Numba and Cython).
  • AoC 2021: 43/50 Python.
  • AoC 2020: 32/50 Python.
  • AoC 2019: 4/50 Python, ??/50 Mathematica.
  • AoC 2018: 13/50 Mathematica. Lessons learned:
    • Mathematica has a some really cool builtin functions (e.g. see the three-line solution to Day 6 with DistanceMatrix and Nearest).
    • Even though Mathematica has fast built-ins, Python can be faster for simple for-loops (e.g. see Day 9 and the attached Python solution). I did not have the courage to try to implement a linked-list in Mathematica for Day 9.
    • Mathematica notebooks don't look great on GitHub.
    • Mathematica doesn't support lazy iteration natively.
    • Mathematica doesn't make it easy to make new data structures (though these are nice to have).
    • Mathematica debugging isn't easy (and it isn't easy to switch from developing code in a Notebook to Eclipse, where they maintain a debugger plugin).
  • AoC 2015: 6/50 Python.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published