Add 2022/01

This commit is contained in:
kageru 2022-12-01 06:12:16 +01:00
parent e11d9e24cd
commit e33d2aa86f
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2
2 changed files with 2282 additions and 0 deletions

2238
2022/inputs/day01 Normal file

File diff suppressed because it is too large Load Diff

44
2022/src/bin/day01.rs Normal file
View File

@ -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,
}