01
This commit is contained in:
Generated
+7
@@ -0,0 +1,7 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 4
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "day_01"
|
||||||
|
version = "0.1.0"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
[package]
|
||||||
|
name = "day_01"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2024"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
3 4
|
||||||
|
4 3
|
||||||
|
2 5
|
||||||
|
1 3
|
||||||
|
3 9
|
||||||
|
3 3
|
||||||
+1000
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,52 @@
|
|||||||
|
use std::{collections::HashMap, fs::read_to_string};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
part_01();
|
||||||
|
part_02();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn part_02() {
|
||||||
|
let mut left = vec![];
|
||||||
|
let mut right = HashMap::new();
|
||||||
|
|
||||||
|
read_to_string("input.txt")
|
||||||
|
.unwrap()
|
||||||
|
.lines()
|
||||||
|
.for_each(|line| {
|
||||||
|
let mut iter = line.split_whitespace();
|
||||||
|
left.push(iter.next().unwrap().parse::<isize>().unwrap());
|
||||||
|
right
|
||||||
|
.entry(iter.next().unwrap().parse::<isize>().unwrap())
|
||||||
|
.and_modify(|e| *e += 1)
|
||||||
|
.or_insert(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
let mut sum = 0;
|
||||||
|
for number in left {
|
||||||
|
sum += number * *right.entry(number).or_default();
|
||||||
|
}
|
||||||
|
println!("{sum}");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn part_01() {
|
||||||
|
let mut left = vec![];
|
||||||
|
let mut right = vec![];
|
||||||
|
read_to_string("input.txt")
|
||||||
|
.unwrap()
|
||||||
|
.lines()
|
||||||
|
.for_each(|line| {
|
||||||
|
let mut iter = line.split_whitespace();
|
||||||
|
left.push(iter.next().unwrap().parse::<isize>().unwrap());
|
||||||
|
right.push(iter.next().unwrap().parse::<isize>().unwrap());
|
||||||
|
});
|
||||||
|
|
||||||
|
left.sort_unstable();
|
||||||
|
right.sort_unstable();
|
||||||
|
|
||||||
|
let mut sum = 0;
|
||||||
|
|
||||||
|
for (l, r) in left.into_iter().zip(right) {
|
||||||
|
sum += (l - r).abs();
|
||||||
|
}
|
||||||
|
println!("{sum}");
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user