[rs] Clean up 2022_04
This commit is contained in:
parent
77a4689425
commit
ff469b2afb
1 changed files with 10 additions and 7 deletions
|
|
@ -1,26 +1,29 @@
|
|||
fn int(str: &str) -> u32 {
|
||||
str.parse().unwrap()
|
||||
}
|
||||
|
||||
pub fn solve(input: String) {
|
||||
let pairs = input
|
||||
.lines()
|
||||
.map(|l| {
|
||||
let mut ranges = l.split(',').map(|p| {
|
||||
let mut numbers = p.split('-').map(|n| n.parse::<u32>().unwrap());
|
||||
(numbers.next().unwrap(), numbers.next().unwrap())
|
||||
});
|
||||
(ranges.next().unwrap(), ranges.next().unwrap())
|
||||
let (r1, r2) = l.split_once(',').unwrap();
|
||||
let (s1, e1) = r1.split_once('-').unwrap();
|
||||
let (s2, e2) = r2.split_once('-').unwrap();
|
||||
(int(s1), int(e1), int(s2), int(e2))
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
// Part 1
|
||||
let score = pairs
|
||||
.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();
|
||||
println!("Part 1: {score}");
|
||||
|
||||
// Part 2
|
||||
let score = pairs
|
||||
.iter()
|
||||
.filter(|((s1, e1), (s2, e2))| s1 <= e2 && s2 <= e1)
|
||||
.filter(|(s1, e1, s2, e2)| s1 <= e2 && s2 <= e1)
|
||||
.count();
|
||||
println!("Part 2: {score}");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue