From cc42679131c11d26d6db530a1bd20d9af37aebda Mon Sep 17 00:00:00 2001 From: Philip Molares <philip.molares@udo.edu> Date: Mon, 14 Dec 2020 15:32:33 +0100 Subject: [PATCH] added day05 Signed-off-by: Philip Molares <philip.molares@udo.edu> --- day05/Cargo.lock | 5 + day05/Cargo.toml | 9 + day05/input.txt | 816 ++++++++++++++++++++++++++++++++++++++++++++++ day05/src/main.rs | 80 +++++ 4 files changed, 910 insertions(+) create mode 100644 day05/Cargo.lock create mode 100644 day05/Cargo.toml create mode 100644 day05/input.txt create mode 100644 day05/src/main.rs diff --git a/day05/Cargo.lock b/day05/Cargo.lock new file mode 100644 index 0000000..f8e92db --- /dev/null +++ b/day05/Cargo.lock @@ -0,0 +1,5 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "day05" +version = "0.1.0" diff --git a/day05/Cargo.toml b/day05/Cargo.toml new file mode 100644 index 0000000..83a7b53 --- /dev/null +++ b/day05/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "day05" +version = "0.1.0" +authors = ["Philip Molares <philip.molares@udo.edu>"] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/day05/input.txt b/day05/input.txt new file mode 100644 index 0000000..9fe2d9a --- /dev/null +++ b/day05/input.txt @@ -0,0 +1,816 @@ +FBFBFBFRRL +BFBBFFFRRL +FFBFFFFRLL +BFFFBBBRLL +BBFFBFBLLR +FFFFBBBRLR +FBBBBFFLRR +FBFFFBFRLL +FFFFBFFRRR +FFFBBFFRLR +BFBBBBFRLL +FBBFBFFLLL +FFFBFFBRRL +BFBFFBBLLL +FFBBFBBLLR +FFBFFBBRRL +BFBFBBBRRL +FFBFFBBLLL +BFFFBBBLRR +BFBFFBFRRR +BFFBFFBRRL +BFBFFFFLLR +FFFFBBBLRR +FFBBFBFRRR +BFFFBFBLLL +FBFFBBBRRL +FBBBBBBRRL +BBFBFFBLLL +BFFBFFFLLL +FBFFBBFLLR +FBFBFFBLRL +FFBFFFBRLR +FFBBBBFRLL +FBFBFFFLRL +FBBFBBFRLR +FFBBBBBLLL +FBFFBFBLLL +FBFFFBBRRR +BBFFBBFRRR +FBFFBFBRLL +FBBBFBBRRR +BFFFBFFRRL +FFBFBFBLLL +FBFBFFFRLR +FBBFBBBLLL +FFFBBBBLLL +FFFBFFBLLL +BFBFFBBLRR +FFBBFFFLLR +FFBBBBBLRR +BBFFFFBRLL +BFFFBBFLRR +BFBFFFBRRR +FBBFFFBLRR +BFBFBFFLLL +FBBFFBFRLL +FFBBBBFLRL +BFFFFBFLLR +FBFBBBFLLR +FFFBBFBRLL +FFBFFBBRLL +BFBBFFBRRR +FFFFBFBRLL +FBFFFBFRRL +FBBFFBBLLR +FFBBFFBRRL +FBBBFFBRRL +BFFFBBFLRL +FFBBBFBRRL +FFFFBFBRRL +BFBFFBFLLR +FBBBBBFLLR +BFFBFFFLRL +FFFBFBFRRL +FFFFBBBRLL +BFFFBFFRLL +BFFFBBBLLR +BBFFFFFRLR +BBFFFBFRLR +BFBBFBBLLL +FBFBBBFRLL +BFFBBFFRLR +BFFBFBBLRR +FFBFBBFRRR +BFBBBFFLRR +BFFBFBBRRR +BBFFFFFRRL +BBFFBFBLLL +BFBBFBFLRL +FBBFFBFLLL +FBBFBFFRLL +FBBBBFFLRL +FBBFBFFRRL +FFFBFBFLLL +FFBFFBFRLR +FBBFFFBLLR +FFFFBFBLRL +FFFBBFBLRR +FFBBBFFRLL +FBFBBBFRRR +BFBBBBFLLL +BBFFBFFLRL +FFFFBBBLLL +FFBFBBBLLL +BFBFBFFRRL +FBFFBBFRRR +FFFBBBBLRR +FBBBBFBLLL +FBBBBBBLRL +FFBFFFBLRR +BBFBFFBRRL +BFBBFFBLLL +BFFFFFFLRL +BFFFFBFRLR +FBFFFFFLLL +BFFBBFFRRL +BFBFBBFLLL +BFBFBFBRLL +FBFBFBBLLL +BFFFBFFLLR +FBBBFBBLLL +FFBFFFBRLL +FBBFFBBLRR +FFBFBFBRLL +BFFFBBBRLR +BBFFBFBLRL +BBFFBFBLRR +BBFFBBFRLL +BFFFFBBRRR +FBFBBFFLRR +FFBBBBBRRR +BFBBBFFRLL +BFBBFFFLRR +FBFBFFBRRR +FFBFFBFLRR +BFBBBBBLRL +FBFFFFBRRR +FFBFFFFLLR +BFFFFFBLRL +FFBBBBFLLL +FBFFFBBLRL +BBFFBFFLLR +FBBFFFBRLL +BBFFBBBRLR +FBFFFBFLRR +BFFBBFBRRL +FBBFFFFRLR +BFFBBBFLRR +FFBBFBBLRR +BFBBBBFRRL +FBFBBBBLLL +BBFFBFBRRR +FFFFBBFRLR +BFBBBBFRLR +FBBFFBFRLR +BFBFFFBRLL +FBFBFBBRRL +FBFBBFBRLR +BFBBBBBRRR +BBFBFFBRLR +FFBFFFBLRL +FBBFFBFLLR +BFFBFBFLLL +BFFFFFBLLL +BFBFFBBRLR +FBBBBFBRLR +BFBBBFBRLR +BFBBFBBRLL +BBFFFFBLLR +FBFBFBFRLL +FFFBBFBRRL +FBFFBBFRLR +FFFBBBBLLR +BBFFBFFLRR +FBBBFFFRRL +BBFFBBFLLL +BBFFFBFRLL +FFBFBBFLRR +BFBFFFBLRL +FFBFBBFLLR +FBBBBFFLLL +FFBBBBFLRR +FFFBFBBLRL +FFFBBFFLRR +FBBBFBBRLL +FFBFFFFLLL +FBBBFBFLRL +FBFBFBFRRR +FFBBFBFLRR +FFBFBBFRRL +FBFBBFFLRL +BFFFBBBRRL +BFBBBBFLLR +FFFBBFFRRR +BFBBFBBRRL +BBFFFBBLRL +BFBFBFFLRR +FFFFBFFLRL +BFBFFBFRLL +BFBFBBFRLR +BFFBFFFLRR +FBFFFFFLRR +BFFBFBFRLL +FBBFBFFLRR +FBFBBBBLRR +BFFFFFFRLR +FBBFBBBRRL +BFFBFBFRLR +FFFBFFFRRL +FFBFFFFRLR +BFFBFFBLLL +FFBFBBFLRL +BBFFFFFLRL +FFFBBFFRRL +FFBBBFFLRL +BFBBFFBLRR +FFBBFBFRLR +FFBFBFFRRR +FFFFBFFLRR +FBBBBFBRRL +BFBBFBBLRL +BFFBBFFLLR +FBFFFBFLLR +FBFBFFBLRR +FFBBFBBRLL +FBFFFFFRLR +FFBBBBFRRL +FBBFFBFRRR +FFFFBBFRRR +FBBBFFBLLL +FFBBFBBLLL +BFBFBFFRLL +BFFFBBFLLL +BFFBBFFRLL +FBFBBFFRRL +BBFBFFFLLR +BBFBFFBLRR +FBFFFFFRRR +FBFFBFFRRR +BFFBBFBRLR +FBFBFBFLLL +BFFBBBBLRR +BFBBFBBRLR +FFBBBFFLRR +FBFBBBBRRR +BFBBBBBRLL +BFBFFBBRRR +FBFBBFBRLL +FBFFBFBLRL +FBBFBBBRLL +FBFBBBBLRL +FBFFFBBLLR +BBFFFBFRRL +FBFBFBBRLL +BFBBBBBRLR +BFBFFFFRLR +FBFBBFBLRR +BFBBFBFRLR +BBFFBBBLLL +BFFFFFFRRR +BFBBBFBLRL +FBFBBFFLLR +FBFBBFFRLR +FFFBFBBLLR +FFBBFFFRLL +BFBFFFFLRR +FFFFBBBRRL +BFFFBFFRRR +BFFFBFBRLL +FFFFBFFRRL +BFFFBBFRRL +FFFBBFFLLL +BFBBFFBRRL +FBFBFFFRRR +FBFBFBFLRL +BFBFBFBLLL +FBBBFFBRLL +FBFFBBBLRL +BFBFFFFRRL +BFFBBFBLLL +FBFFFBBRLR +BBFBFFFRLL +FFBFBFFLRL +FBBFBBBLRL +BBFBFFFLRR +BBFBFFBRRR +BFFBFFBRLR +BBFFBBFRRL +FBFBBBFLRR +FBBFFFFLLL +BFFBBFBLRR +BFBFFFFLLL +BFFBBBBRLL +FFBFFBFLLL +FBBBBFBLLR +BBFFFBFLLR +BFBBBFBRLL +FBFFFFBRLR +FFBBBFFRRL +FFBFFFBRRR +BFFBFFFRLL +FFFBFBBLLL +FFFBBBFLLL +BFBBFBFRLL +BFBFFFBRLR +FBBFBBFRLL +FBBBFBFRRL +FFBFBFFRLR +BFBBFBBLLR +FBBFBFBRLR +BBFFFBBLLL +FBFBFFFLLL +BBFBFFFRRR +FBFBBFBLRL +FFBBBFBRLR +BFBBFFBRLR +FBFFBBBLRR +FFBBFFBRRR +BBFFBFBRRL +FFBBBFFRRR +BFBFFBFLRL +FBFFFFBLLL +BBFFFFBRRL +BBFFFFBLRR +FFBBFFBRLL +BFBBFFFLLL +FBBFBFBLLL +FBBBFFFLRL +FBFBBBBRRL +FFFBBBFRRR +FFBFFBBRRR +FBFFFFFLRL +BFFBFBFLRR +BBFFBBBRRR +FBFFFFFRRL +FBBFBFBLRR +BFFBBBBLLL +FBBBFFFLLR +BFFFFBFLLL +FFBFBFBLLR +FBFFFBBRLL +BFFFBFBRLR +FBBBFBFLLR +FBBBBFFLLR +BFFFFBBLLR +FFBBBBBRLR +BFFFBFBLRR +FBBBFFBLLR +FBFFBFBRRL +FBFBFBBRRR +FBBBBBBLRR +FFBBBBBRRL +FBFFFFBLLR +BBFBFFBRLL +FFFBBBFRLR +FBFFFBBLLL +FBFFBBBLLR +BFBFBBFRRL +BBFFBFBRLL +BFFFBBFRRR +BFFBBFBLRL +FBBBFBFLRR +FFFBFBFRRR +FFBBBFBLRR +BFBFBBFRRR +FFBBBFBRLL +BFFFBBBLLL +BFFFBFBRRL +BFFBFBBRLL +FBBFFFFLRL +FFFFBFFRLR +FFFBBBBRRL +BFFBFBFRRL +FFFBBFBRRR +FFBFBFBLRR +FFFFBBFLRL +BBFFFFBLRL +BFBBBBBRRL +FBBBBBFLLL +FBFFBFFLRL +FFBFBBBRRR +FBFBBBBRLL +BBFFFBBRRL +FFBBFBFRRL +FFBBBFFRLR +FFFBFBFRLL +FBBFBFBLLR +FFBBBBBLLR +FBFBFFBLLR +BFFFBBFRLR +FFBBFFFRRL +FFFFBBFLRR +BBFFFFFRRR +FFBBFFBLLR +FBFFFFBLRR +FFFFBFFRLL +BFBBFFFRLL +BFBBFFBRLL +BBFFFBBRLR +FFBFFFFRRR +BFBFBFBRRR +FFBBFBFLLR +BFFBBBFRLL +FBBBFFFRRR +BFBBBBBLLL +FFBFFFFLRR +FBFFFFBRLL +BFFFFBFRRL +FBBBBBBRRR +FFFFBBFLLL +FBFFBFFLRR +FFFBBBFRRL +FBBFFFBRRL +BFBFBBBRLL +BBFFFBFLRR +FBBFBFBRRL +FBBFFFFLRR +BFBBBFBLLL +BFFFFFBRRL +BBFFFBBLRR +BFFFFFBLRR +BFBBBBFLRL +FBFBFFBRRL +BBFFFFFLRR +FFFFBBBLLR +BFBBFBFLLL +FBBFFFBRRR +FFBBBFBRRR +FFBFBFFRLL +FFBBFBBLRL +FBBFFBFRRL +FFFBBFBLRL +FFBBFFBLRR +BFFFFBBLLL +FBBFBBFLRL +FFFBFFBLRL +FBBFFBBRRL +FBFFFBFRRR +BFBBBFFLRL +FFFFBFFLLL +FBFFFFFRLL +BFBFFFFRLL +FFBFBBBLRL +BFFBBBBLLR +BFFBBBFRRL +FFBBBBFLLR +FFFBFBFLRR +FBFFBFFRLR +BFBFBBBRLR +BFFBFFFLLR +FFFFBFBLLR +FBFFBFBLRR +BFFBFBFRRR +BFFBFFBLRL +FBBBBBFRRR +BFBBFFBLRL +FFBBFBBRRL +FBFFBFFRLL +FFBFFBFLLR +BFBBBBBLRR +BFFBBFFLRL +FBBBFBBRRL +BBFFBBBLRR +BBFFFBFRRR +FBFFBFBRLR +FBFBFFBRLR +BBFFFFBLLL +FBBFBFFRRR +FFBBFBFRLL +FFFFBFBLRR +FBFBFFFRRL +FBBFBBFRRL +FFBFFBFLRL +FFBFBFBRRR +FFFFBBFRRL +BFFBBBFRLR +FFBFBBBRRL +BFFBFBBLLL +FBBBBFFRRL +FFFBFBFRLR +FFBFFBBLRL +BFFBFFBLRR +FBBBFFFRLR +FBBBFFBRLR +FBBBBBBLLR +FBBFBFFLLR +BBFFBFFRRL +FBBBBBFRRL +FFFBBFFRLL +FFFBBFFLRL +FFBFFBBLRR +FBBFFFBLLL +FFFFBBFRLL +FFBFFBBLLR +BFFFBFFLLL +BFFBBFBRLL +FBBFFFBRLR +FFFBFBBLRR +BFBFFBBLRL +FBFFFBFRLR +BFBFFFFLRL +BFBBBBBLLR +FFFBBFFLLR +BFBFFFBLLR +FFFFBBFLLR +FBBFBBFLRR +FBBBFBBLLR +BFFFFFBRRR +FBFBFFFLLR +FBFBBBBRLR +FFFBFFBLLR +FFFBBFBLLL +BFFBFBBRRL +BFBFBBBLRL +BFFFBBFRLL +FBBFFBFLRL +BFBFBBBRRR +FFFBFFBRRR +BFFFBFFLRL +BBFFBBFRLR +FFFBBBBLRL +FBBFFFFRRL +FBFFBFFRRL +BFFFFFBRLL +FBFBBFBRRR +FBFBBBFLRL +FBFFBBBLLL +FFFFBBBRRR +FBBBFBBLRL +BFBFFBBRLL +FBFBBBFRLR +FFFBBBFLRR +BFFBFFFRLR +BFBFFBFRLR +BFBBFFFLLR +FBFFBBBRRR +FBBBFFBLRL +BFBFBBBLRR +FBBBBBFLRR +FBBBBBBRLR +BFBFFFFRRR +BFBBBBFLRR +BFBBFFFRRR +FFBFBFFLLL +FBFFFBFLRL +BFBBFBFLLR +BFFBBBFLLR +FBBFBFBRRR +FFBFFBFRLL +BFFFBFFLRR +FBFBBFFLLL +FFFBFBBRRR +FBBBFBBRLR +BFFFBBBRRR +FFFBFBFLLR +BFFBFBBLRL +FBFBBFFRLL +BFBBFBBLRR +FFFBBBBRLR +BFFFFFFLRR +FBFFBBFLRL +BFBFFFBRRL +BBFFBFFLLL +FFBBFBBRRR +BFBFFBFRRL +BFFFFBBLRL +BFBBFFFLRL +FBFFFBFLLL +FBBFFBBRLL +FFBBFFBRLR +FFFBFFBLRR +BFBFBFFLRL +FBBBBFBRRR +FBBFFBFLRR +BFFBBFBRRR +FFFBFFBRLL +FFBFBFFLRR +FFFBFFFLRL +BFBFBFBRRL +BFFFFBFRRR +FFBFBBBRLR +BFFBFFBRRR +FBBBFBFRRR +FBBBBBFRLL +BBFBFBFLLL +FBFFFBBRRL +FBBBBFBRLL +BBFFBFBRLR +FFFFBFBLLL +FFBFBBBLLR +FFFBBFBRLR +BFBFFBBRRL +FFBFBFBRRL +FFBFBFBRLR +FFFBBBFRLL +FFBFBBFRLL +FFFFBFBRRR +FFFFBFBRLR +BBFFFFFLLL +BFBFFFBLLL +BFBBBFFRRR +FBBBBBBLLL +FFBFBBBRLL +FBFBBBFLLL +FBBBFFBRRR +BFBBFBFLRR +FFFBBFBLLR +FFFBBBBRRR +FFBFBFBLRL +FFBBFFFLRR +FBBFBFBLRL +FBBFFBBRLR +FBBFFBBRRR +BFBFFBFLLL +FBFFFFBLRL +FFBBBBBRLL +FBFBFBBLRL +FBFFFFBRRL +BFBBBFBRRR +FFFBBBFLRL +FBFBFBFLRR +BFFBFFBLLR +BFBFBFBRLR +FBBFBBFRRR +BFBFFBBLLR +BFBFFFBLRR +FBBBBBFLRL +BFFFBFBLLR +BBFFFFBRLR +BBFBFFFRRL +BBFBFFBLRL +BBFFFBFLRL +FFBBFFFLRL +FBBBFBFRLL +BFFFFBFRLL +FBBBFFFLRR +FFBFFBFRRR +FBBBFBFRLR +FFBFBFFRRL +FBFBBFBLLL +FFBBBFBLRL +FFBBBBFRRR +FBFBFBBLLR +FBBBBFBLRL +FFBBBFFLLL +FBFFBBFLRR +FBFBFBBRLR +BBFFBBFLRR +FBFBBBFRRL +BFFBBFFRRR +BBFFFBBRRR +BFFBBBBRRL +BBFFFFFLLR +BFBBBFFLLR +BBFBFFFLLL +BFFBBBFLRL +BFBFFBFLRR +FBBFBFBRLL +BFFFFFBLLR +BFBFBBFRLL +FBBFBBBRRR +FFBFFFBRRL +BFBBBBFRRR +BFFFBBFLLR +FBBBFFFLLL +FBFFFFFLLR +FFBFFFFRRL +FFBBFFFRLR +FBFBFFFRLL +FFBBBBBLRL +FBFFBFBLLR +BFBFBBFLRL +BFFFBFFRLR +BBFFBBFLRL +BFFBFFBRLL +BFFFFBBLRR +BFBFBBBLLR +BFFBBBBRLR +FBBBBFFRRR +BBFFBBBLRL +FBBBFFFRLL +FBBFFFFRRR +FFBBBFFLLR +BBFFBBFLLR +BFFBBBBRRR +BFBBFFBLLR +BFBFBBBLLL +BFFBBFBLLR +BFBBFBFRRR +BFFFBFBRRR +BFBBBFFLLL +BBFFBFFRLL +FBBFFFBLRL +FFFBFFFLLL +BFBBBFBLRR +FFBBBBFRLR +BFFBFBFLRL +BFBFBFBLLR +BBFFFBBLLR +FBFBFFFLRR +FFBFBFFLLR +FFBBFFBLLL +BFBFBFFRRR +FBFBBBBLLR +BFBFBBFLLR +FBBFFBBLLL +FBFFBBBRLR +FBFFBBBRLL +FBFFBFFLLR +BFFBBBFRRR +BFFFFFFLLR +BFBBFBFRRL +FFBFFBBRLR +FBBBBFFRLR +BFFBFFFRRL +FFBFBBFLLL +FFFBFBBRLL +FFFBBBBRLL +FBBFBBBRLR +FFFBFBBRRL +FFBBFFFRRR +BFFFFFFRRL +FFBBFFBLRL +BFFFFFBRLR +BFFBBBFLLL +FBFFBFFLLL +FFBFFFFLRL +FFFFBBBLRL +FBFBBFFRRR +FBFFBBFRLL +BFFFFFFLLL +FFBFFFBLLL +BFBFBBFLRR +FBBFFFFLLR +BFBFBFFRLR +BFBBFFFRLR +BFBBBFFRLR +BFFBBFFLRR +BBFFBBBRLL +FBBFFFFRLL +BFFFFBBRRL +FBFBBFBRRL +BFFBFFFRRR +FFBFFBFRRL +BFFFFBBRLR +BFFFFBFLRL +BFBBBFFRRL +FBBBFBFLLL +BFFBFBBLLR +FBFBFBBLRR +FBBFBBBLRR +BFBFBFFLLR +BFFBBBBLRL +BFFFFFFRLL +FFFBFFFRLR +FFBBFBFLRL +FBFBFFBLLL +BBFFBFFRLR +FBBFBBFLLL +BFBBFBBRRR +FBBBBFFRLL +BFBBBFBLLR +FFBFFFBLLR +FFFBFFFLRR +FBFBFBFRLR +BBFFFFBRRR +FBBFBBBLLR +BFBBBFBRRL +BBFBFFBLLR +FFBFBBBLRR +FFBBBFBLLL +FBBBFFBLRR +FFFBFBFLRL +FBFFBBFRRL +FFFBBBFLLR +BFFFBBBLRL +BBFFFBBRLL +BBFFFBFLLL +FBBFBFFLRL +FFFBFBBRLR +FFBFBBFRLR +FBBBFBBLRR +FBFFBFBRRR +BFFBBFFLLL +FFBBFFFLLL +FFFBFFBRLR +FFBBFBFLLL +FBBFBBFLLR +FFFFBFFLLR +BFFBFBBRLR +FBFBFFBRLL +BBFFFFFRLL +BBFBFFFLRL +FFFBFFFRRR +BFFBFBFLLR +FFBBBFBLLR +FBFFBBFLLL +FBFFFBBLRR +BBFFBBBRRL +FBFBBFBLLR +FFFBFFFLLR +BBFFBFFRRR +FBBFFBBLRL +FBBFBFFRLR +BBFBFFFRLR +BFBFBFBLRR +FFBBFBBRLR +FFFBFFFRLL +BBFFBBBLLR +FBBBBFBLRR +FBFBFBFLLR +BFFFFBFLRR +BFFFFBBRLL +FBBBBBBRLL +FBBBBBFRLR +BFFFBFBLRL \ No newline at end of file diff --git a/day05/src/main.rs b/day05/src/main.rs new file mode 100644 index 0000000..64442fe --- /dev/null +++ b/day05/src/main.rs @@ -0,0 +1,80 @@ +use std::fs::File; +use std::io::{self, prelude::*, BufReader}; + +struct Seat { + row: i64, + col: i64 +} + +impl Seat { + fn id(&self) -> i64 { + self.row * 8 + self.col + } +} + +fn check_borading_passes(boarding_passes: &mut Vec<String>) -> Vec<Seat> { + boarding_passes + .iter() + .map(|boarding_pass| { + let (row_bits, col_bits) = boarding_pass.split_at(7); + let row_bits = &row_bits + .replace("F", "0") + .replace("B", "1"); + let col_bits = &col_bits + .replace("L", "0") + .replace("R", "1"); + let row = i64::from_str_radix(row_bits, 2).unwrap(); + let col = i64::from_str_radix(col_bits, 2).unwrap(); + Seat{ + row: row, + col: col, + } + }) + .collect() +} + +fn main() -> io::Result<()> { + println!("Advent of Code 2020 – Day 5:"); + + let file = File::open("input.txt")?; + let reader = BufReader::new(file); + + let mut input = reader + .lines() + .map(|l| { + String::from(l.unwrap()) + }) + .collect::<Vec<String>>(); + + let seats = check_borading_passes(&mut input); + + let highest_seat_id = seats + .iter() + .map(|s| s.id()) + .max() + .unwrap(); + + println!("Answer Part 1: {}", highest_seat_id); + + let mut sorted_seat_ids = seats + .iter() + .map(|s| s.id()) + .collect::<Vec<i64>>(); + + sorted_seat_ids.sort(); + + let mut last = sorted_seat_ids[0]-1; + let mut canidate = 0; + + for id in sorted_seat_ids.iter() { + if last + 2 == *id { + canidate = last + 1; + break; + } + last = *id; + } + + println!("Answer Part 2: {:?}", canidate); + + Ok(()) +} -- GitLab