1
0

Add Point3::from_line()

This commit is contained in:
Stefan Müller
2025-12-10 23:53:10 +01:00
parent 695f08f99f
commit 6d499efd3c
2 changed files with 6 additions and 2 deletions
+5
View File
@@ -16,6 +16,11 @@ impl Point2 {
pub struct Point3(pub u64, pub u64, pub u64); pub struct Point3(pub u64, pub u64, pub u64);
impl Point3 { impl Point3 {
pub fn from_line(line: &str, separator: char) -> Self {
let p: Vec<u64> = line.split(separator).map(|s| s.parse().unwrap()).collect();
Self(p[0], p[1], p[2])
}
pub fn distance_sqr(&self, other: &Self) -> u64 { pub fn distance_sqr(&self, other: &Self) -> u64 {
self.0.abs_diff(other.0).pow(2) self.0.abs_diff(other.0).pow(2)
+ self.1.abs_diff(other.1).pow(2) + self.1.abs_diff(other.1).pow(2)
+1 -2
View File
@@ -21,8 +21,7 @@ impl Playground {
fn junction_boxes<R: BufRead>(reader: R) -> Vec<Point3> { fn junction_boxes<R: BufRead>(reader: R) -> Vec<Point3> {
let mut junction_boxes = Vec::new(); let mut junction_boxes = Vec::new();
for line in reader.lines().map_while(Result::ok) { for line in reader.lines().map_while(Result::ok) {
let j: Vec<u64> = line.split(Self::POINT_SPLIT_CHAR).map(|s| s.parse().unwrap()).collect(); junction_boxes.push(Point3::from_line(&line, Self::POINT_SPLIT_CHAR));
junction_boxes.push(Point3(j[0], j[1], j[2]));
} }
junction_boxes junction_boxes
} }