Rust Day 1
This commit is contained in:
parent
14abcd622e
commit
19559cea15
6 changed files with 2305 additions and 3 deletions
2
rust/Cargo.lock
generated
2
rust/Cargo.lock
generated
|
@ -4,4 +4,4 @@ version = 3
|
|||
|
||||
[[package]]
|
||||
name = "advent-of-code"
|
||||
version = "22.0.2"
|
||||
version = "22.1.2"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "advent-of-code"
|
||||
version = "22.0.2"
|
||||
version = "22.1.2"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
@ -25,4 +25,8 @@ codegen-units = 1
|
|||
|
||||
[[bin]]
|
||||
name = "day00"
|
||||
path = "src/day00/main.rs"
|
||||
path = "src/day00/main.rs"
|
||||
|
||||
[[bin]]
|
||||
name = "day01"
|
||||
path = "src/day01/main.rs"
|
2251
rust/src/day01/input.txt
Normal file
2251
rust/src/day01/input.txt
Normal file
File diff suppressed because it is too large
Load diff
11
rust/src/day01/main.rs
Normal file
11
rust/src/day01/main.rs
Normal file
|
@ -0,0 +1,11 @@
|
|||
const INPUT: &str = include_str!("input.txt");
|
||||
|
||||
mod part_1;
|
||||
use part_1::part_1;
|
||||
mod part_2;
|
||||
use part_2::part_2;
|
||||
|
||||
pub fn main() {
|
||||
part_1(INPUT);
|
||||
part_2(INPUT);
|
||||
}
|
17
rust/src/day01/part_1.rs
Normal file
17
rust/src/day01/part_1.rs
Normal file
|
@ -0,0 +1,17 @@
|
|||
pub(crate) fn part_1(input: &'static str) {
|
||||
let maximum = input
|
||||
.split("\n\n")
|
||||
.map(|inventory| {
|
||||
inventory
|
||||
.split('\n')
|
||||
.map(|item| {
|
||||
item.parse::<u32>()
|
||||
.expect("Input isn't clean. Non-number found")
|
||||
})
|
||||
.sum::<u32>()
|
||||
})
|
||||
.max()
|
||||
.expect("No highest inventory found. Input unclean?");
|
||||
|
||||
println!("Part 1: {maximum}")
|
||||
}
|
19
rust/src/day01/part_2.rs
Normal file
19
rust/src/day01/part_2.rs
Normal file
|
@ -0,0 +1,19 @@
|
|||
pub(crate) fn part_2(input: &'static str) {
|
||||
let mut calories = input
|
||||
.split("\n\n")
|
||||
.map(|inventory| {
|
||||
inventory
|
||||
.split('\n')
|
||||
.map(|item| {
|
||||
item.parse::<u32>()
|
||||
.expect("Input isn't clean. Non-number found")
|
||||
})
|
||||
.sum::<u32>()
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
calories.sort();
|
||||
calories.reverse();
|
||||
let top_three = calories.iter().take(3).sum::<u32>();
|
||||
|
||||
println!("Part 2: {top_three}");
|
||||
}
|
Loading…
Reference in a new issue