Skip to content

Commit f93ec25

Browse files
committed
Year 2025 Day 12
1 parent 92f82f8 commit f93ec25

File tree

7 files changed

+41
-4
lines changed

7 files changed

+41
-4
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ Performance is reasonable even on older hardware, for example a 2011 MacBook Pro
8888
| 9 | [Movie Theater](https://adventofcode.com/2025/day/9) | [Source](src/year2025/day09.rs) | 668 |
8989
| 10 | [Factory](https://adventofcode.com/2025/day/10) | [Source](src/year2025/day10.rs) | 117* |
9090
| 11 | [Reactor](https://adventofcode.com/2025/day/11) | [Source](src/year2025/day11.rs) | 75 |
91+
| 12 | [Christmas Tree Farm](https://adventofcode.com/2025/day/12) | [Source](src/year2025/day12.rs) | 22 |
9192

9293
## 2024
9394

benches/benchmark.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,5 +95,5 @@ benchmark!(year2024
9595
);
9696

9797
benchmark!(year2025
98-
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11
98+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12
9999
);

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,5 @@ library!(year2024 "Locate the Chief Historian in time for the big Christmas slei
7474
);
7575

7676
library!(year2025 "Finish the North Pole decorations in time for Christmas."
77-
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11
77+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12
7878
);

src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,5 +141,5 @@ run!(year2024
141141
);
142142

143143
run!(year2025
144-
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11
144+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12
145145
);

src/year2025/day12.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
//! # Christmas Tree Farm
2+
use crate::util::iter::*;
3+
use crate::util::parse::*;
4+
5+
pub fn parse(input: &str) -> &str {
6+
input
7+
}
8+
9+
pub fn part1(input: &str) -> usize {
10+
let blocks: Vec<_> = input.split("\n\n").collect();
11+
let sizes: Vec<_> =
12+
blocks[..6].iter().map(|block| block.bytes().filter(|&b| b == b'#').count()).collect();
13+
14+
blocks[6]
15+
.iter_unsigned::<usize>()
16+
.chunk::<8>()
17+
.filter(|region| {
18+
let area = region[0] * region[1];
19+
let needed: usize = sizes.iter().zip(&region[2..]).map(|(x, y)| x * y).sum();
20+
needed <= area
21+
})
22+
.count()
23+
}
24+
25+
pub fn part2(_input: &str) -> &'static str {
26+
"n/a"
27+
}

tests/test.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,5 +87,5 @@ test!(year2024
8787
);
8888

8989
test!(year2025
90-
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11
90+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12
9191
);

tests/year2025/day12.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#[test]
2+
fn part1_test() {
3+
// Specific to real actual input.
4+
}
5+
6+
#[test]
7+
fn part2_test() {
8+
// Not applicable.
9+
}

0 commit comments

Comments
 (0)