Compare commits

...

2 commits

Author SHA1 Message Date
05c89e5f11 cargo fmt 2020-12-06 03:20:11 +01:00
561a1453df Add length check for Day 4, hcl value 2020-12-06 03:20:03 +01:00
4 changed files with 95 additions and 90 deletions

View file

@ -1,6 +1,5 @@
use aoc_runner_derive::{aoc, aoc_generator};
#[aoc_generator(day1)]
pub fn input_generator(input: &str) -> Vec<usize> {
input

View file

@ -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();
}

View file

@ -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;

View file

@ -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 {