summaryrefslogtreecommitdiff
path: root/2024_rust/src/day1.rs
diff options
context:
space:
mode:
authorGuillermo Ramos2024-12-06 15:59:32 +0100
committerGuillermo Ramos2024-12-06 16:29:18 +0100
commitff064b6f13019b15346ff320a486d70b95d80b2a (patch)
tree396868cbbd9be95f6ce0a808f8436d4a1a0f1d89 /2024_rust/src/day1.rs
parenta6029017bb354381c17afaf00526442966648c3f (diff)
downloadAoC-ff064b6f13019b15346ff320a486d70b95d80b2a.tar.gz
Each day is now a binary
Diffstat (limited to '2024_rust/src/day1.rs')
-rw-r--r--2024_rust/src/day1.rs45
1 files changed, 0 insertions, 45 deletions
diff --git a/2024_rust/src/day1.rs b/2024_rust/src/day1.rs
deleted file mode 100644
index 0b6c13d..0000000
--- a/2024_rust/src/day1.rs
+++ /dev/null
@@ -1,45 +0,0 @@
-pub fn p1(input: &str) -> String {
- let mut left: Vec<u32> = vec![];
- let mut right: Vec<u32> = vec![];
- for line in input.lines() {
- let mut fields = line.split_whitespace();
- let e = "Wrong file format";
- left.push(fields.next().expect(e).parse().expect(e));
- right.push(fields.next().expect(e).parse().expect(e));
- }
- left.sort_unstable();
- right.sort_unstable();
-
- let mut distance: u32 = 0;
- for i in 0..left.len() {
- let l = left[i];
- let r = right[i];
- distance += if l >= r { l - r } else { r - l };
- }
-
- distance.to_string()
-}
-
-use std::collections::HashMap;
-
-pub fn p2(input: &str) -> String {
- let mut left: Vec<u32> = vec![];
- let mut right: HashMap<u32, u32> = HashMap::new();
- for line in input.lines() {
- let mut fields = line.split_whitespace();
- let e = "Wrong file format";
- left.push(fields.next().expect(e).parse().expect(e));
- let r: u32 = fields.next().expect(e).parse().expect(e);
- match right.get(&r) {
- None => right.insert(r, 1),
- Some(v) => right.insert(r, v + 1),
- };
- }
-
- let mut distance: u32 = 0;
- for l in left {
- distance += l * right.get(&l).unwrap_or(&0);
- }
-
- distance.to_string()
-}