Advent of code in Rust - solving year 2020 exercise 23 part 2 (Twitch Live 2021-12-06)

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



Duration: 1:24:13
18 views
1


In this episode, we completed Advent of Code y2020 ex23!

In this exercise we are simulating a new game. This time it's about swapping elements in a circular linked list by following a certain number of rules. We need to run a certain number of rounds and make sure that the final configuration is correct.

In this episode we ended up implementing a circular list to support part 2 of the exercise. Our circular list is not a generic one and assumes the list is dense and that there are no repeated values.

With this approach we were able to simulate 10 million iterations of the game in a relatively short amount of time.

We got a little bit bogged down on how to implement windowed iterators and had a bit of a fight with the FromIterator trait (https://doc.rust-lang.org/stable/std/iter/trait.FromIterator.html) and the borrow checker. In the end, we figured out a solution using itertools (https://docs.rs/itertools/latest/itertools/) but it's probably not optimal.

We might revisit it and clean up a little, so make sure to check out the official repository!

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-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)
2021-11-01Advent of code in Rust - solving year 2020 exercise 20 p2 THIRD ATTEMPT (Twitch Live 2021-11-01)
2021-10-27Advent of code in Rust - solving year 2020 exercise 20 p2 SECOND ATTEMPT (Twitch Live 2021-10-26)
2021-10-26Advent of code in Rust - solving year 2020 exercise 20 p2 FIRST ATTEMPT (Twitch Live 2021-10-25)
2021-10-19Advent of code in Rust - solving year 2020 exercise 20 p1(Twitch Live 2021-10-18)
2021-10-12Advent of code in Rust - solving year 2020 exercise 19 p1 & p2 (ALMOST) (Twitch Live 2021-10-11)
2021-09-27Advent of code in Rust - solving year 2020 exercise 19 p1 (Twitch Live 2021-09-27)



Tags:
rust
rustlang
live coding
programming
live stream
pair programming
advent of code
aoc
year 2020
day 23
exercise 23
coding challenge
in real life
educational
IRL
learning Rust
fromIterator
itertools
twitch
youtube
english