From 30d1a16075d6afb940125f7ac1da1b8d94b3fb6f Mon Sep 17 00:00:00 2001 From: Bert Peters Date: Fri, 2 Dec 2022 09:52:09 +0100 Subject: [PATCH] Collect into vec for nicer vectorization --- 2022/src/day01.rs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/2022/src/day01.rs b/2022/src/day01.rs index e5d59c8..1f98204 100644 --- a/2022/src/day01.rs +++ b/2022/src/day01.rs @@ -2,7 +2,6 @@ use std::ops::Add; use anyhow::Result; use nom::character::complete::newline; -use nom::combinator::opt; use nom::multi::separated_list0; use nom::sequence::terminated; use nom::IResult; @@ -14,13 +13,9 @@ fn parse_elf(input: &[u8]) -> IResult<&[u8], i32> { reduce_many1(terminated(nom::character::complete::i32, newline), Add::add)(input) } -fn parse_max(input: &[u8]) -> IResult<&[u8], i32> { - reduce_many1(terminated(parse_elf, opt(newline)), Ord::max)(input) -} - pub fn part1(input: &[u8]) -> Result { - let result = parse_input(input, parse_max)?.to_string(); - Ok(result) + let elves = parse_input(input, parse_elf_list)?; + Ok(elves.into_iter().fold(0, Ord::max).to_string()) } fn parse_elf_list(input: &[u8]) -> IResult<&[u8], Vec> {