Advent of code in Rust - solving day 5/2021 (Twitch Live 2022-02-07)

Subscribers:
950
Published on ● Video Link: https://www.youtube.com/watch?v=vjCzBekLRdY



Duration: 45:54
15 views
3


In this episode, we completed day 5 of Advent of Code y2021 using Rust!

In today's challenge we needed to represent overlapping segments over a two dimensional space and count home many overlapping points we would find.

The first part of the exercise required us to look only for vertical and horizontal segments, while in the second part we had also diagonal segments with an angle of 45 degrees.

We decided to go for a generalised solution using a custom iterator that allows us to iterate over all the discrete points of a segment.

We can build the iterator from a segment and it will be able to figure out all the discrete points from point1 to point2 and allow us to iterate over them.

We did all of this with a custom SegmentIterator struct which implements the Iterator Trait: https://doc.rust-lang.org/std/iter/trait.Iterator.html

This made our solution quite simple.

At the end of the stream we also managed to generalise the code for part1 and part2 by creating a couple of helper methods using trait objects (so that we can deal with generic iterators producing 2D points).

If you have any suggestion, we'd love to hear it, so please leave a comment or a create a PR!

For all the source code check out the official GitHub repo: https://github.com/lmammino/rust-advent

For seeing the next episodes live check out our Twitch channel: https://twitch.tv/loige




Other Videos By Luciano Mammino (loige)


2022-05-16๐Ÿฆ€ Rust vs ๐Ÿ Python: Advent of code in Rust - solving day 15/2021 (Twitch Live 2022-05-16)
2022-05-09๐Ÿฆ€ Rust vs ๐Ÿ Python: Advent of code in Rust - solving day 14/2021 (Twitch Live 2022-05-09)
2022-04-25๐Ÿฆ€ Rust vs ๐Ÿ Python: Advent of code in Rust - solving day 13/2021 (Twitch Live 2022-04-25)
2022-04-11๐Ÿฆ€ Rust vs ๐Ÿ Python: Advent of code in Rust - solving day 12/2021 (Twitch Live 2022-04-11)
2022-04-04๐Ÿฆ€ Rust vs ๐Ÿ Python: Advent of code in Rust - solving day 11/2021 (Twitch Live 2022-04-04)
2022-03-28Advent of code in Rust - solving day 10/2021 (Twitch Live 2022-03-28) with Python comparison! ๐Ÿ
2022-03-21Advent of code in Rust - solving day 8/2021 part 2 and day 9/2021 (Twitch Live 2022-03-21)
2022-03-07Advent of code in Rust - solving day 7/2021 and day 8/2021 part 1 (Twitch Live 2022-03-7)
2022-02-21Advent of code in Rust SPECIAL - solving day 6/2021 on a RASPBERRY PICO (Twitch Live 2022-02-21)
2022-02-14Advent of code in Rust - solving day 6/2021 (Twitch Live 2022-02-14)
2022-02-07Advent of code in Rust - solving day 5/2021 (Twitch Live 2022-02-07)
2022-01-31Advent of code in Rust - solving day 4/2021 (Twitch Live 2022-01-31)
2022-01-24Advent of code in Rust - solving day 3/2021 (Twitch Live 2022-01-24)
2022-01-17Advent of code in Rust - solving day 2/2021 (Twitch Live 2022-01-17)
2022-01-10Advent of code in Rust - solving day 25/2020 & day 1/2021 (Twitch Live 2022-01-10)
2021-12-13Advent of code in Rust - solving year 2020 exercise 24 part 1 (Twitch Live 2021-12-13)
2021-12-07Advent of code in Rust - solving year 2020 exercise 23 part 2 (Twitch Live 2021-12-06)
2021-11-29Advent of code in Rust - solving year 2020 exercise 23 part 1 (Twitch Live 2021-11-29)
2021-11-22Advent of code in Rust - solving year 2020 exercise 22 part 2 (Twitch Live 2021-11-22)
2021-11-15Advent of code in Rust - solving year 2020 exercise 22 part 1 (Twitch Live 2021-11-15)
2021-11-08Advent of code in Rust - solving year 2020 exercise 21 (Twitch Live 2021-11-08)



Tags:
rust
rustlang
advent of code
aoc
adventofcode
game of life
learning rust
live coding
pair programming
mob programming
live stream
twitch
educational
iterator
fromStr
traits
coding challenge
problem solving
irl
in real life
day2
year 2021
aoc2021
advent of code 2021