[rs] Clean up 2022_04

This commit is contained in:
Joscha 2022-12-05 09:20:12 +01:00
parent 77a4689425
commit ff469b2afb

View file

@ -1,26 +1,29 @@
fn int(str: &str) -> u32 {
str.parse().unwrap()
}
pub fn solve(input: String) { pub fn solve(input: String) {
let pairs = input let pairs = input
.lines() .lines()
.map(|l| { .map(|l| {
let mut ranges = l.split(',').map(|p| { let (r1, r2) = l.split_once(',').unwrap();
let mut numbers = p.split('-').map(|n| n.parse::<u32>().unwrap()); let (s1, e1) = r1.split_once('-').unwrap();
(numbers.next().unwrap(), numbers.next().unwrap()) let (s2, e2) = r2.split_once('-').unwrap();
}); (int(s1), int(e1), int(s2), int(e2))
(ranges.next().unwrap(), ranges.next().unwrap())
}) })
.collect::<Vec<_>>(); .collect::<Vec<_>>();
// Part 1 // Part 1
let score = pairs let score = pairs
.iter() .iter()
.filter(|((s1, e1), (s2, e2))| (s1 <= s2 && e2 <= e1) || (s2 <= s1 && e1 <= e2)) .filter(|(s1, e1, s2, e2)| (s1 <= s2 && e2 <= e1) || (s2 <= s1 && e1 <= e2))
.count(); .count();
println!("Part 1: {score}"); println!("Part 1: {score}");
// Part 2 // Part 2
let score = pairs let score = pairs
.iter() .iter()
.filter(|((s1, e1), (s2, e2))| s1 <= e2 && s2 <= e1) .filter(|(s1, e1, s2, e2)| s1 <= e2 && s2 <= e1)
.count(); .count();
println!("Part 2: {score}"); println!("Part 2: {score}");
} }