day 1 solved

This commit is contained in:
Nico 2022-12-01 15:13:03 +00:00
parent f0a1ebe8c4
commit 1531239f20
2 changed files with 77 additions and 0 deletions

63
src/bin/01.rs Normal file
View File

@ -0,0 +1,63 @@
pub fn part_one(input: &str) -> Option<u32> {
let inlines = input.split("\n");
let mut count: u32 = 0;
let mut elves: Vec<u32> = vec![];
for l in inlines {
match l {
"" => { elves.push(count); count = 0},
_ => { count += l.parse::<u32>().unwrap() }
}
}
let mut largest = 0;
for e in elves {
if e > largest {
largest = e;
}
}
Some(largest)
}
pub fn part_two(input: &str) -> Option<u32> {
let inlines = input.split("\n");
let mut count: u32 = 0;
let mut elves: Vec<u32> = vec![];
for l in inlines {
match l {
"" => { elves.push(count); count = 0},
_ => { count += l.parse::<u32>().unwrap() }
}
}
elves.sort();
elves.reverse();
elves.truncate(3);
Some(elves.iter().sum::<u32>())
}
fn main() {
let input = &advent_of_code::read_file("inputs", 1);
advent_of_code::solve!(1, part_one, input);
advent_of_code::solve!(2, part_two, input);
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_part_one() {
let input = advent_of_code::read_file("examples", 1);
assert_eq!(part_one(&input), Some(24000));
}
#[test]
fn test_part_two() {
let input = advent_of_code::read_file("examples", 1);
assert_eq!(part_two(&input), None);
}
}

14
src/examples/01.txt Normal file
View File

@ -0,0 +1,14 @@
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000