reformating day-18

This commit is contained in:
Dylan Thies
2023-12-19 10:11:27 -05:00
parent 43309b2079
commit b55b0374f5
2 changed files with 22 additions and 18 deletions

View File

@@ -37,14 +37,14 @@ pub fn part1(input: &str) -> String {
let corners = steps
.iter()
.scan(I64Vec2::splat(0), |cursor, next| {
let dir =match next.direction {
Direction::Up => I64Vec2::NEG_Y,
Direction::Down => I64Vec2::Y,
Direction::Left => I64Vec2::NEG_X,
Direction::Right => I64Vec2::X,
};
let dir = match next.direction {
Direction::Up => I64Vec2::NEG_Y,
Direction::Down => I64Vec2::Y,
Direction::Left => I64Vec2::NEG_X,
Direction::Right => I64Vec2::X,
};
*cursor += next.count * dir;
Some( *cursor)
Some(*cursor)
})
.collect::<Vec<_>>();
let perimeter = corners
@@ -61,10 +61,14 @@ pub fn part1(input: &str) -> String {
let dist = (*b - *a).abs();
dist.x + dist.y
};
let area = (corners.iter().tuple_windows().map(|(a,b)| {
a.x * b.y -a.y *b.x
}).sum::<i64>() + perimeter
)/2 +1;
let area = (corners
.iter()
.tuple_windows()
.map(|(a, b)| a.x * b.y - a.y * b.x)
.sum::<i64>()
+ perimeter)
/ 2
+ 1;
area.to_string()
}

View File

@@ -41,13 +41,13 @@ pub fn part2(input: &str) -> String {
.iter()
.scan(I64Vec2::splat(0), |cursor, next| {
let dir = match next.direction {
Direction::Up => I64Vec2::NEG_Y,
Direction::Down => I64Vec2::Y,
Direction::Left => I64Vec2::NEG_X,
Direction::Right => I64Vec2::X,
};
Direction::Up => I64Vec2::NEG_Y,
Direction::Down => I64Vec2::Y,
Direction::Left => I64Vec2::NEG_X,
Direction::Right => I64Vec2::X,
};
*cursor += next.count * dir;
Some( *cursor)
Some(*cursor)
})
.collect::<Vec<_>>();
@@ -76,7 +76,7 @@ pub fn part2(input: &str) -> String {
.abs()
+ 1;
(area ).to_string()
(area).to_string()
}
fn parse_step(input: &str) -> IResult<&str, Step> {