Skip to content

Commit 6fb5446

Browse files
committed
2025 day 5 part 1
1 parent 292032a commit 6fb5446

File tree

3 files changed

+64
-1
lines changed

3 files changed

+64
-1
lines changed

src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ fn all_solvers() -> Vec<Solver> {
101101
day14, day15, day16, day17, day18, day19, day20, day21, day22, day23, day24, day25
102102
),
103103
solvers!(y2025
104-
day1, day2, day3, day4
104+
day1, day2, day3, day4, day5
105105
),
106106
]
107107
.into_iter()

src/y2025.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ pub mod day1;
22
pub mod day2;
33
pub mod day3;
44
pub mod day4;
5+
pub mod day5;

src/y2025/day5.rs

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#[derive(Debug)]
2+
pub struct Input {
3+
fresh_ranges: Vec<(u64, u64)>,
4+
ingredients: Vec<u64>,
5+
}
6+
7+
pub fn parse_input(input: &str) -> Input {
8+
let mut fresh_ranges = vec![];
9+
let mut ingredients = vec![];
10+
11+
for line in input.lines().filter(|&line| line.len() > 0) {
12+
if let Some(hyphen) = line.find(|c| c == '-') {
13+
fresh_ranges.push((
14+
line[0..hyphen].parse().unwrap(),
15+
line[(hyphen + 1)..].parse().unwrap(),
16+
));
17+
} else {
18+
ingredients.push(line.parse().unwrap());
19+
}
20+
}
21+
22+
Input {
23+
fresh_ranges,
24+
ingredients,
25+
}
26+
}
27+
28+
pub fn part1(input: &Input) -> usize {
29+
input
30+
.ingredients
31+
.iter()
32+
.filter(|&&ingredient| {
33+
input
34+
.fresh_ranges
35+
.iter()
36+
.any(|range| ingredient >= range.0 && ingredient <= range.1)
37+
})
38+
.count()
39+
}
40+
41+
pub fn part2(input: &Input) -> &str {
42+
"unimplemented"
43+
}
44+
45+
#[test]
46+
fn test() {
47+
let test_input = "\
48+
3-5
49+
10-14
50+
16-20
51+
12-18
52+
53+
1
54+
5
55+
8
56+
11
57+
17
58+
32
59+
";
60+
let input = parse_input(test_input);
61+
assert_eq!(3, part1(&input));
62+
}

0 commit comments

Comments
 (0)