# AoC 2024: Day 15

**URL:** <https://ziggit.dev/t/aoc-2024-day-15/7342>\
**Category:** Challenge\
**Tags:** advent-of-code\
**Created:** [December 15, 2024, 11:40am UTC](https://ziggit.dev/t/aoc-2024-day-15/7342 "2024-12-15T11:40:20Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Calder-Ty](https://ziggit.dev/user_avatar/ziggit.dev/calder-ty/32/10237_2.png) [@Calder-Ty](https://ziggit.dev/u/Calder-Ty)\
**Post date:** [December 15, 2024, 11:40am UTC](https://ziggit.dev/t/aoc-2024-day-15/7342/1 "2024-12-15T11:40:20Z")

</div>

Main thread for Day 15 of the 2024 advent of code. Feel free to discuss the challenge and ask questions. If particular discussions become large, we can break them off into new threads.

Some Rules:

1. Please try to keep spoilers within spoiler tags. This is done by typing [spoiler]text to be blurred[\spoiler]. If you have longer sections you can also use the [details=“Title”] tags.
2. Have Fun

[Day 15 Challenge](https://adventofcode.com/2024/day/15)

Templates:

- [GitHub - JacobCrabill/AdventOfCode-2024: My solutions for Advent of Code, 2024](https://github.com/JacobCrabill/AdventOfCode-2024)
- [GitHub - SpexGuy/Zig-AoC-Template: A template for Advent of Code participants using Zig](https://github.com/SpexGuy/Zig-AoC-Template)

Resources:

- [Advent of Code in Zig | Loris Cro's Blog](https://kristoff.it/blog/advent-of-code-zig) :Advice and Tips on How to do AoC with Zig
- [https://zigbin.io](https://zigbin.io) : A website for sharing zig code
- [Documentation - The Zig Programming Language](https://ziglang.org/documentation/master/) : Zig Language Reference
- [Zig Documentation](https://ziglang.org/documentation/master/std/) : Zig Standard Library Docs
- [Docs](https://ziggit.dev/docs) : Community Created Docs and Tutorials
- Private Leaderboard (189 Seats left) code: 1910115-f465b6d3

> **Previous days discussions**
>
> Day 1: [AoC 2024: Day 1](https://ziggit.dev/t/aoc-2024-day-1/7100)  
> Day 2: [AoC 2024: Day 2](https://ziggit.dev/t/aoc-2024-day-2/7119)  
> Day 3: [AoC 2024: Day 3](https://ziggit.dev/t/aoc-2024-day-3/7136)  
> Day 4: [AoC 2024: Day 4](https://ziggit.dev/t/aoc-2024-day-4/7150)  
> Day 5: [AoC 2024: Day 5](https://ziggit.dev/t/aoc-2024-day-5/7167)  
> Day 6: [AoC 2024: Day 6](https://ziggit.dev/t/aoc-2024-day-6/7183)  
> Day 7: [AoC 2024: Day 7](https://ziggit.dev/t/aoc-2024-day-7/7196)  
> Day 8: [AoC 2024: Day 8](https://ziggit.dev/t/aoc-2024-day-8/7207)  
> Day 9: [AoC 2024: Day 9](https://ziggit.dev/t/aoc-2024-day-9/7226)  
> Day 10: [AoC 2024: Day 10](https://ziggit.dev/t/aoc-2024-day-10/7244)  
> Day 11: [AoC 2024: Day 11](https://ziggit.dev/t/aoc-2024-day-11/7264)  
> Day 12: [AoC 2024: Day 12](https://ziggit.dev/t/aoc-2024-day-12/7288)  
> Day 13: [AoC 2024: Day 13](https://ziggit.dev/t/aoc-2024-day-13/7301)  
> Day 14: [AoC 2023: Day 14](https://ziggit.dev/t/aoc-2023-day-14/7323)

---

<div class="post-metadata">

**Author:** ![erikwastaken](https://ziggit.dev/letter_avatar_proxy/v4/letter/e/8baadc/32.png) [@erikwastaken](https://ziggit.dev/u/erikwastaken)\
**Post date:** [December 15, 2024, 4:56pm UTC](https://ziggit.dev/t/aoc-2024-day-15/7342/2 "2024-12-15T16:56:51Z")

</div>

Only had time for part 1 today. Part 2 doesn’t seem significantly more difficult, just more of a pain to implement. My initial idea for part 2 is to use a stack to keep track of the boxes to have to move up and down.

[https://zigbin.io/b2a499](https://zigbin.io/b2a499)

---

<div class="post-metadata">

**Author:** ![p88h](https://ziggit.dev/user_avatar/ziggit.dev/p88h/32/3974_2.png) [@p88h](https://ziggit.dev/u/p88h)\
**Post date:** [December 15, 2024, 9:53pm UTC](https://ziggit.dev/t/aoc-2024-day-15/7342/3 "2024-12-15T21:53:12Z")

</div>

Part 2 was a bit of coding.  
Did a visualisation (prior to solving it completely, this helped find bugs in the logic.

Source: [aoc2024/src/day15.zig at main · p88h/aoc2024 · GitHub](https://github.com/p88h/aoc2024/blob/main/src/day15.zig)  
Visualisation: [https://youtu.be/vJ9ar\_q78So](https://youtu.be/vJ9ar_q78So)

Benchmark:

```zig
        parse part1 part2 total
day 15: 4.3 µs 0.1 ms 0.2 ms 0.4 ms (+-1%) iter=101

```

---

<div class="post-metadata">

**Author:** ![ProfBof](https://ziggit.dev/letter_avatar_proxy/v4/letter/p/a88e4f/32.png) [@ProfBof](https://ziggit.dev/u/ProfBof)\
**Post date:** [December 17, 2024, 1:59am UTC](https://ziggit.dev/t/aoc-2024-day-15/7342/4 "2024-12-17T01:59:56Z")

</div>

0.5ms. That was more code than the other days. I try to avoid it when possible, but in this case recursion was cleaner.

[https://zigbin.io/f1d606](https://zigbin.io/f1d606)  
Using this multidimensional array that I finally extracted to its own file:  
[https://zigbin.io/c43da6](https://zigbin.io/c43da6)

---

<div class="post-metadata">

**Author:** ![nurpax](https://ziggit.dev/user_avatar/ziggit.dev/nurpax/32/1217_2.png) [@nurpax](https://ziggit.dev/u/nurpax)\
**Post date:** [December 17, 2024, 9:15am UTC](https://ziggit.dev/t/aoc-2024-day-15/7342/5 "2024-12-17T09:15:58Z")

</div>

Nice visualization @p88h 🙂
