Add 2022/01
This commit is contained in:
parent
e11d9e24cd
commit
e33d2aa86f
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,44 @@
|
||||||
|
#![feature(test)]
|
||||||
|
extern crate test;
|
||||||
|
use aoc2022::{boilerplate, common::*};
|
||||||
|
|
||||||
|
const DAY: usize = 01;
|
||||||
|
type Parsed = Vec<usize>;
|
||||||
|
|
||||||
|
fn parse_input(raw: &str) -> Parsed {
|
||||||
|
raw.split("\n\n").map(|elf| elf.lines().map(parse_num::<usize>).sum()).collect()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn part1(parsed: &Parsed) -> usize {
|
||||||
|
*parsed.iter().max().unwrap_or(&0)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn part2(parsed: &Parsed) -> usize {
|
||||||
|
let mut sorted: Vec<_> = parsed.clone();
|
||||||
|
sorted.sort();
|
||||||
|
sorted.iter().rev().take(3).sum()
|
||||||
|
}
|
||||||
|
|
||||||
|
boilerplate! {
|
||||||
|
TEST_INPUT == "1000
|
||||||
|
2000
|
||||||
|
3000
|
||||||
|
|
||||||
|
4000
|
||||||
|
|
||||||
|
5000
|
||||||
|
6000
|
||||||
|
|
||||||
|
7000
|
||||||
|
8000
|
||||||
|
9000
|
||||||
|
|
||||||
|
10000",
|
||||||
|
tests: {
|
||||||
|
part1: { TEST_INPUT => 24000 },
|
||||||
|
part2: { TEST_INPUT => 45000 },
|
||||||
|
},
|
||||||
|
bench1 == 72017,
|
||||||
|
bench2 == 212520,
|
||||||
|
bench_parse: Vec::len => 242,
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user