diff options
Diffstat (limited to 'src/2022/1/mod.rs')
-rw-r--r-- | src/2022/1/mod.rs | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/2022/1/mod.rs b/src/2022/1/mod.rs index 4f644d6..d3088b6 100644 --- a/src/2022/1/mod.rs +++ b/src/2022/1/mod.rs @@ -5,17 +5,14 @@ use crate::prelude::*; pub fn parse(fh: File) -> Result<Vec<i64>> { let mut elves = vec![]; - let mut cur = 0; - for line in parse::lines(fh) { - let line = line.trim(); - if line.is_empty() { - elves.push(cur); - cur = 0; - } else { - cur += line.parse::<i64>()?; + let mut lines = parse::lines(fh).peekable(); + while lines.peek().is_some() { + let mut calories = 0; + for line in parse::chunk(&mut lines) { + calories += line.parse::<i64>()?; } + elves.push(calories); } - elves.push(cur); Ok(elves) } |