day 1 solved
This commit is contained in:
parent
f0a1ebe8c4
commit
1531239f20
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
1000
|
||||
2000
|
||||
3000
|
||||
|
||||
4000
|
||||
|
||||
5000
|
||||
6000
|
||||
|
||||
7000
|
||||
8000
|
||||
9000
|
||||
|
||||
10000
|
Loading…
Reference in New Issue