finished day07
This commit is contained in:
30
README.md
30
README.md
@@ -1,23 +1,23 @@
|
||||
# Advent of Code 2025
|
||||
```bash
|
||||
day01:A => 1150 ( 56us)
|
||||
day01:B => 1150 ( 55us)
|
||||
day02:A => 31839939622 ( 7769us)
|
||||
day02:B => 41662374059 ( 64866us)
|
||||
day03:A => 16812 ( 81us)
|
||||
day03:B => 166345822896410 ( 275us)
|
||||
day04:A => 1518 ( 195us)
|
||||
day04:B => 8665 ( 3720us)
|
||||
day05:A => 701 ( 139us)
|
||||
day01:A => 1150 ( 49us)
|
||||
day01:B => 1150 ( 47us)
|
||||
day02:A => 31839939622 ( 7731us)
|
||||
day02:B => 41662374059 ( 64732us)
|
||||
day03:A => 16812 ( 84us)
|
||||
day03:B => 166345822896410 ( 286us)
|
||||
day04:A => 1518 ( 202us)
|
||||
day04:B => 8665 ( 3737us)
|
||||
day05:A => 701 ( 140us)
|
||||
day05:B => 352340558684863 ( 19us)
|
||||
day06:A => 6503327062445 ( 194us)
|
||||
day06:B => 9640641878593 ( 132us)
|
||||
day07:A => 0 ( 0us)
|
||||
day07:B => 0 ( 0us)
|
||||
day06:A => 6503327062445 ( 207us)
|
||||
day06:B => 9640641878593 ( 133us)
|
||||
day07:A => 1678 ( 49us)
|
||||
day07:B => 357525737893560 ( 55us)
|
||||
day08:A => 0 ( 0us)
|
||||
day08:B => 0 ( 0us)
|
||||
day09:A => 4725826296 ( 162us)
|
||||
day09:A => 4725826296 ( 164us)
|
||||
day09:B => 0 ( 0us)
|
||||
----------
|
||||
78285us
|
||||
81857us
|
||||
```
|
||||
@@ -23,14 +23,12 @@ mod tests {
|
||||
...............";
|
||||
|
||||
#[test]
|
||||
#[ignore]
|
||||
fn part07a() {
|
||||
assert_eq!(part07a::solve(PUZZLE.to_string()), 21);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[ignore]
|
||||
fn part07b() {
|
||||
assert_eq!(part07b::solve(PUZZLE.to_string()), 0);
|
||||
assert_eq!(part07b::solve(PUZZLE.to_string()), 40);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,29 @@
|
||||
|
||||
pub fn solve(puzzle: String) -> u64 {
|
||||
0 // TODO
|
||||
let mut solution = 0;
|
||||
let mut lines = puzzle.lines();
|
||||
let mut source = lines
|
||||
.next()
|
||||
.unwrap()
|
||||
.chars()
|
||||
.map(|c| match c { 'S' => 1, _ => 0 } )
|
||||
.collect::<Vec<u8>>();
|
||||
|
||||
lines.for_each(|line| {
|
||||
let mut next_source = source.clone();
|
||||
line.chars().zip(source.iter()).enumerate().for_each(|(i, x)| {
|
||||
match x {
|
||||
('^', 1) => {
|
||||
solution += 1;
|
||||
next_source[i-1] = 1;
|
||||
next_source[i] = 0;
|
||||
next_source[i+1] = 1;
|
||||
},
|
||||
_ => (),
|
||||
}
|
||||
});
|
||||
source = next_source;
|
||||
});
|
||||
|
||||
solution
|
||||
}
|
||||
|
||||
@@ -1,4 +1,29 @@
|
||||
|
||||
pub fn solve(puzzle: String) -> u64 {
|
||||
0 // TODO
|
||||
let mut solution = 0;
|
||||
let mut lines = puzzle.lines();
|
||||
let mut source = lines
|
||||
.next()
|
||||
.unwrap()
|
||||
.chars()
|
||||
.map(|c| match c { 'S' => (1, 1), _ => (0, 0) } )
|
||||
.collect::<Vec<(u8, u64)>>();
|
||||
|
||||
lines.for_each(|line| {
|
||||
let mut next_source = source.clone();
|
||||
line.chars().zip(source.iter()).enumerate().for_each(|(i, x)| {
|
||||
match x {
|
||||
('^', (1, weight)) => {
|
||||
solution += weight;
|
||||
next_source[i-1] = (1 , next_source[i-1].1 + weight);
|
||||
next_source[i] = (0, 0);
|
||||
next_source[i+1] = (1 , next_source[i+1].1 + weight)
|
||||
},
|
||||
_ => (),
|
||||
}
|
||||
});
|
||||
source = next_source;
|
||||
});
|
||||
|
||||
solution + 1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user