Day t/m 6p1 done
This commit is contained in:
parent
7ed2746251
commit
aecb2f2278
42 changed files with 3188 additions and 34 deletions
27
advent_of_code_2024/src/day4/part2.rs
Normal file
27
advent_of_code_2024/src/day4/part2.rs
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
pub fn solve(input: &str) {
|
||||
let grid = input.lines().map(|str| str.as_bytes()).collect::<Vec<_>>();
|
||||
let width = grid[0].len() as i32;
|
||||
let height = grid.len() as i32;
|
||||
let words = ((b'M', b'A', b'S'), (b'S', b'A', b'M'));
|
||||
|
||||
let mut matches = 0;
|
||||
|
||||
for xpos in 1..(width - 1) {
|
||||
for ypos in 1..(height - 1) {
|
||||
if grid[xpos as usize][ypos as usize] == b'A' {
|
||||
let left = (grid[(xpos - 1) as usize][(ypos - 1) as usize],
|
||||
grid[(xpos) as usize][(ypos) as usize],
|
||||
grid[(xpos + 1) as usize][(ypos + 1) as usize]);
|
||||
let right = (grid[(xpos + 1) as usize][(ypos - 1) as usize],
|
||||
grid[(xpos) as usize][(ypos) as usize],
|
||||
grid[(xpos - 1) as usize][(ypos + 1) as usize]);
|
||||
|
||||
if (left == words.0 || left == words.1) && (right == words.0 || right == words.1) {
|
||||
matches += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
println!("matches: {}", matches);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue