# AoC 2024: Day 18

**URL:** <https://ziggit.dev/t/aoc-2024-day-18/7403>\
**Category:** Challenge\
**Tags:** advent-of-code\
**Created:** [December 18, 2024, 5:03am UTC](https://ziggit.dev/t/aoc-2024-day-18/7403 "2024-12-18T05:03:37Z")\
**Posts on this page:** 4\
**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 18, 2024, 5:03am UTC](https://ziggit.dev/t/aoc-2024-day-18/7403/1 "2024-12-18T05:03:37Z")

</div>

Main thread for Day 18 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 18 Challenge](https://adventofcode.com/2024/day/18)

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)  
> Day 15: [AoC 2024: Day 15](https://ziggit.dev/t/aoc-2024-day-15/7342)  
> Day 16: [AoC 2024: Day 16](https://ziggit.dev/t/aoc-2024-day-16/7364)  
> Day 17: [AoC 2024: Day 17](https://ziggit.dev/t/aoc-2024-day-17/7394)

---

<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 18, 2024, 12:32pm UTC](https://ziggit.dev/t/aoc-2024-day-18/7403/2 "2024-12-18T12:32:20Z")

</div>

Source: [aoc2024/src/day18.zig at main · p88h/aoc2024 · GitHub](https://github.com/p88h/aoc2024/blob/main/src/day18.zig)  
Video: [https://youtu.be/0Gd85UbHVIE](https://youtu.be/0Gd85UbHVIE)

BFS + binary search in main source, iterative BFS (on broken paths only) in visualisation.

Benchmark:

```zig
        parse part1 part2 total
day 18: 22.1 µs 15.7 µs 24.6 µs 62.5 µs (+-1%) iter=19110

```

---

<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 18, 2024, 9:42pm UTC](https://ziggit.dev/t/aoc-2024-day-18/7403/3 "2024-12-18T21:42:41Z")

</div>

Binary Search implementation could be cleaner, but it’s late 😃

[https://zigbin.io/510cbd](https://zigbin.io/510cbd)

---

<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 20, 2024, 2:37am UTC](https://ziggit.dev/t/aoc-2024-day-18/7403/4 "2024-12-20T02:37:39Z")

</div>

Under 0.4ms. I thought doing a binary search would be enough to have good performance, but as p88h shows, I should have done iterative BFS. Anyways, at least I am not using priority queues anymore when a simple queue works. I am lagging behind a bit, I think I’ll take a more breaks and finish during Christmas vacation. Day 17 part 2 humiliated me.

[The Zig Pastebin](https://zigbin.io/dd092e) , using array [The Zig Pastebin](https://zigbin.io/9d5aa8)
