fix: day6 tests and rust fmt
This commit is contained in:
parent
0000013076
commit
0000014030
|
@ -13,10 +13,10 @@ pub fn part_one(input: &str) -> Option<u32> {
|
|||
'<' => x -= 1,
|
||||
'^' => y += 1,
|
||||
'v' => y -= 1,
|
||||
_ => panic!("oops")
|
||||
_ => panic!("oops"),
|
||||
};
|
||||
visited.insert((x, y));
|
||||
};
|
||||
}
|
||||
Some(visited.len() as u32)
|
||||
}
|
||||
pub fn part_two(input: &str) -> Option<u32> {
|
||||
|
@ -29,7 +29,7 @@ pub fn part_two(input: &str) -> Option<u32> {
|
|||
'<' => x1 -= 1,
|
||||
'^' => y1 += 1,
|
||||
'v' => y1 -= 1,
|
||||
_ => panic!("oops")
|
||||
_ => panic!("oops"),
|
||||
};
|
||||
visited.insert((x1, y1));
|
||||
match robot {
|
||||
|
@ -37,10 +37,10 @@ pub fn part_two(input: &str) -> Option<u32> {
|
|||
'<' => x2 -= 1,
|
||||
'^' => y2 += 1,
|
||||
'v' => y2 -= 1,
|
||||
_ => panic!("oops")
|
||||
_ => panic!("oops"),
|
||||
};
|
||||
visited.insert((x2, y2));
|
||||
};
|
||||
}
|
||||
Some(visited.len() as u32)
|
||||
}
|
||||
fn main() {
|
||||
|
|
|
@ -29,7 +29,9 @@ pub fn part_two(input: &str) -> Option<u32> {
|
|||
let mut output = [0; 16];
|
||||
hasher.result(&mut output);
|
||||
|
||||
if output.starts_with(&[0,0,0]) { return Some(x as u32)}
|
||||
if output.starts_with(&[0, 0, 0]) {
|
||||
return Some(x as u32);
|
||||
}
|
||||
hasher.reset();
|
||||
}
|
||||
None
|
||||
|
|
|
@ -63,19 +63,19 @@ impl From<&str> for Command {
|
|||
}
|
||||
|
||||
pub fn part_one(input: &str) -> Option<u32> {
|
||||
let mut a = [[0; 1000]; 1000];
|
||||
let mut a = vec![[0; 1000]; 1000];
|
||||
for line in input.trim().split('\n') {
|
||||
let Command {
|
||||
instruction,
|
||||
from,
|
||||
to,
|
||||
} = Command::from(line);
|
||||
for x in from.x..=to.x {
|
||||
for y in from.y..=to.y {
|
||||
for x in a.iter_mut().take(to.x + 1).skip(from.x) {
|
||||
for y in x.iter_mut().take(to.y + 1).skip(from.y) {
|
||||
match instruction {
|
||||
On => a[x][y] = 1,
|
||||
Off => a[x][y] = 0,
|
||||
Toggle => a[x][y] = 1 - a[x][y],
|
||||
On => *y = 1,
|
||||
Off => *y = 0,
|
||||
Toggle => *y = 1 - *y,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -84,20 +84,20 @@ pub fn part_one(input: &str) -> Option<u32> {
|
|||
}
|
||||
|
||||
pub fn part_two(input: &str) -> Option<u32> {
|
||||
let mut a = [[0; 1000]; 1000];
|
||||
let mut a = vec![[0; 1000]; 1000];
|
||||
for line in input.trim().split('\n') {
|
||||
let Command {
|
||||
instruction,
|
||||
from,
|
||||
to,
|
||||
} = Command::from(line);
|
||||
for x in from.x..=to.x {
|
||||
for y in from.y..=to.y {
|
||||
for x in a.iter_mut().take(to.x + 1).skip(from.x) {
|
||||
for y in x.iter_mut().take(to.y + 1).skip(from.y) {
|
||||
match instruction {
|
||||
On => a[x][y] = 1,
|
||||
Off if a[x][y] > 0 => a[x][y] -= 1,
|
||||
Off => (),
|
||||
Toggle => a[x][y] += 2,
|
||||
On => *y += 1,
|
||||
Toggle => *y += 2,
|
||||
Off if y > &mut 0 => *y -= 1,
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue