Compare commits
2 commits
0ffbddb7db
...
05c89e5f11
Author | SHA1 | Date | |
---|---|---|---|
05c89e5f11 | |||
561a1453df |
4 changed files with 95 additions and 90 deletions
|
@ -1,6 +1,5 @@
|
|||
use aoc_runner_derive::{aoc, aoc_generator};
|
||||
|
||||
|
||||
#[aoc_generator(day1)]
|
||||
pub fn input_generator(input: &str) -> Vec<usize> {
|
||||
input
|
||||
|
|
|
@ -54,10 +54,10 @@ pub fn input_generator(input: &str) -> Vec<Rule> {
|
|||
|
||||
#[aoc(day2, part1)]
|
||||
pub fn solve_part1(input: &Vec<Rule>) -> usize {
|
||||
return input.iter().filter(|v| v.is_valid_part1()).count()
|
||||
return input.iter().filter(|v| v.is_valid_part1()).count();
|
||||
}
|
||||
|
||||
#[aoc(day2, part2)]
|
||||
pub fn solve_part2(input: &Vec<Rule>) -> usize {
|
||||
return input.iter().filter(|v| v.is_valid_part2()).count()
|
||||
return input.iter().filter(|v| v.is_valid_part2()).count();
|
||||
}
|
||||
|
|
|
@ -76,6 +76,9 @@ impl Creds {
|
|||
}
|
||||
|
||||
fn validate_hcl(val: &str) -> bool {
|
||||
if val.len() != 7 {
|
||||
return false;
|
||||
}
|
||||
let mut ch = val.chars();
|
||||
if ch.next() != Some('#') {
|
||||
return false;
|
||||
|
|
27
src/day5.rs
27
src/day5.rs
|
@ -5,22 +5,25 @@ pub enum Direction {
|
|||
Front,
|
||||
Back,
|
||||
Left,
|
||||
Right
|
||||
Right,
|
||||
}
|
||||
|
||||
#[aoc_generator(day5)]
|
||||
pub fn input_generator(input: &str) -> Vec<Vec<Direction>> {
|
||||
input.lines().map(|line| {
|
||||
line.chars().map(|c| {
|
||||
match c {
|
||||
input
|
||||
.lines()
|
||||
.map(|line| {
|
||||
line.chars()
|
||||
.map(|c| match c {
|
||||
'L' => Direction::Left,
|
||||
'R' => Direction::Right,
|
||||
'F' => Direction::Front,
|
||||
'B' => Direction::Back,
|
||||
other => panic!("Invalid direction: {}",other)
|
||||
}
|
||||
}).collect()
|
||||
}).collect()
|
||||
other => panic!("Invalid direction: {}", other),
|
||||
})
|
||||
.collect()
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
pub fn seat_to_pos(seat: &Vec<Direction>) -> (usize, usize) {
|
||||
|
@ -32,16 +35,16 @@ pub fn seat_to_pos(seat: &Vec<Direction>) -> (usize,usize) {
|
|||
match inst {
|
||||
Direction::Back => {
|
||||
row_range.0 += delta_row;
|
||||
},
|
||||
}
|
||||
Direction::Front => {
|
||||
row_range.1 -= delta_row;
|
||||
},
|
||||
}
|
||||
Direction::Left => {
|
||||
col_range.1 -= delta_col;
|
||||
},
|
||||
}
|
||||
Direction::Right => {
|
||||
col_range.0 += delta_col;
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
if row_range.1 - row_range.0 != 1 {
|
||||
|
|
Loading…
Reference in a new issue