Add Point3::from_line()
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user