puzzle_1.rs 648 B

123456789101112131415161718192021222324252627
  1. use std::fs::File;
  2. use std::io::{BufRead, BufReader};
  3. use std::path::Path;
  4. pub fn solve() {
  5. let masses = read_masses("./src/day_1/puzzle_1.txt");
  6. let mut sum: f32 = 0.0;
  7. for mass in &masses {
  8. sum += (mass / 3.0).floor() - 2.0;
  9. }
  10. println!("sum: {}", sum);
  11. }
  12. fn read_masses(filename: impl AsRef<Path>) -> Vec<f32> {
  13. let file = File::open(filename).expect("no such file");
  14. let buffer = BufReader::new(file);
  15. buffer
  16. .lines()
  17. .map(|l| {
  18. l.expect("could not read line")
  19. .parse::<f32>()
  20. .expect("could not parse line")
  21. })
  22. .collect()
  23. }