Andrew Swistak 6 лет назад
Родитель
Сommit
de4cf9d18a
1 измененных файлов с 25 добавлено и 1 удалено
  1. 25 1
      src/day_1/puzzle_1.rs

+ 25 - 1
src/day_1/puzzle_1.rs

@@ -1,3 +1,27 @@
+use std::fs::File;
+use std::io::{BufRead, BufReader};
+use std::path::Path;
+
 pub fn solve() {
-    println!("NYI");
+    let masses = read_masses("./src/day_1/puzzle_1.txt");
+    let mut sum: f32 = 0.0;
+
+    for mass in &masses {
+        sum += (mass / 3.0).floor() - 2.0;
+    }
+    println!("sum: {}", sum);
+}
+
+fn read_masses(filename: impl AsRef<Path>) -> Vec<f32> {
+    let file = File::open(filename).expect("no such file");
+    let buffer = BufReader::new(file);
+
+    buffer
+        .lines()
+        .map(|l| {
+            l.expect("could not read line")
+                .parse::<f32>()
+                .expect("could not parse line")
+        })
+        .collect()
 }