Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Commit 4b95bdd

Browse files
committed
Clean up day 01 some more
1 parent 1907f7f commit 4b95bdd

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

src/bin/day01/main.rs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,19 @@ fn read_input(input: &str) -> (Vec<i32>, Vec<i32>) {
66
input
77
.trim()
88
.lines()
9+
.map(|line| {
10+
let (left, right) = line.trim().split_once(" ").unwrap_or_else(|| {
11+
panic!("Expect two values per line with three spaces in between, but {line} is not")
12+
});
13+
14+
(
15+
left.parse().expect("not a number"),
16+
right.parse().expect("not a number"),
17+
)
18+
})
919
.fold((vec![], vec![]), |mut acc, line| {
10-
let values = line.split_whitespace().collect::<Vec<_>>();
11-
12-
if values.len() != 2 {
13-
panic!("Expect two values per line, but {line} is not");
14-
}
15-
16-
acc.0.push(values[0].parse().expect("not a number"));
17-
acc.1.push(values[1].parse().expect("not a number"));
18-
20+
acc.0.push(line.0);
21+
acc.1.push(line.1);
1922
acc
2023
})
2124
}
@@ -29,7 +32,7 @@ fn p1(input: &str) -> String {
2932
left_list
3033
.into_iter()
3134
.zip(right_list)
32-
.map(|(left, right)| left.max(right) - left.min(right))
35+
.map(|(left, right)| (left - right).abs())
3336
.sum::<i32>()
3437
.to_string()
3538
}
@@ -45,7 +48,7 @@ fn p2(input: &str) -> String {
4548

4649
left_list
4750
.into_iter()
48-
.map(|left_number| left_number * (right_map.get(&left_number).copied().unwrap_or_default()))
51+
.map(|left_number| left_number * (*right_map.get(&left_number).unwrap_or(&0)))
4952
.sum::<i32>()
5053
.to_string()
5154
}

0 commit comments

Comments
 (0)