nairby

2022 Day 1

Dec 1st, 2022 (edited)
752
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.89 KB | None | 0 0
  1. use std::env;
  2. use std::io::{self};
  3.  
  4. fn solve(input: &str) -> io::Result<()> {
  5.     // Input
  6.     let input_str = std::fs::read_to_string(input).unwrap();
  7.     let input_str = input_str.trim();
  8.     let input: Vec<_> = input_str.split("\n\n").collect();
  9.  
  10.     // Get each Elf's calories
  11.     let mut elf_snacks: Vec<usize> = input
  12.         .iter()
  13.         .map(|x| x
  14.             .split("\n")
  15.             .map(|y| y.parse::<usize>().unwrap())
  16.         .sum())
  17.         .collect();
  18.     elf_snacks.sort_by(|a, b| b.cmp(a));
  19.  
  20.     // Calculate answers
  21.     let part1 = elf_snacks.iter().max().unwrap();
  22.     let part2 = elf_snacks.iter().take(3).sum::<usize>();
  23.  
  24.     println!("Part 1: {}", part1); // 72602
  25.     println!("Part 2: {}", part2); // 207410
  26.  
  27.     Ok(())
  28. }
  29.  
  30. fn main() {
  31.     let args: Vec<String> = env::args().collect();
  32.     let filename = &args[1];
  33.     solve(&filename).unwrap();
  34. }
  35.  
Advertisement
Add Comment
Please, Sign In to add comment