From c6f3bfe8f68d2e71d10d422df281682cfba60415 Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Fri, 1 Dec 2017 00:55:04 -0500 Subject: Day 1, part 2 --- 2017/src/bin/day01.rs | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/2017/src/bin/day01.rs b/2017/src/bin/day01.rs index ee81d15..70ca5a6 100644 --- a/2017/src/bin/day01.rs +++ b/2017/src/bin/day01.rs @@ -1,10 +1,10 @@ use std::io::{self, Read}; -fn solve(input: &str) -> u32 { +fn solve(input: &str, skip: usize) -> u32 { let mut sum = 0; let chars = input.chars(); - let nexts = input.chars().cycle().skip(1); + let nexts = input.chars().cycle().skip(skip); for (a, b) in chars.zip(nexts) { if a == b { @@ -15,17 +15,31 @@ fn solve(input: &str) -> u32 { sum } +fn solve2(input: &str) -> u32 { + solve(input, input.len() / 2) +} + fn main() { let mut input = String::new(); io::stdin().read_to_string(&mut input).unwrap(); - println!("Part 1: {}", solve(input.trim())); + println!("Part 1: {}", solve(input.trim(), 1)); + println!("Part 2: {}", solve2(input.trim())); } #[test] fn part1() { - assert_eq!(3, solve("1122")); - assert_eq!(4, solve("1111")); - assert_eq!(0, solve("1234")); - assert_eq!(9, solve("91212129")); + assert_eq!(3, solve("1122", 1)); + assert_eq!(4, solve("1111", 1)); + assert_eq!(0, solve("1234", 1)); + assert_eq!(9, solve("91212129", 1)); +} + +#[test] +fn part2() { + assert_eq!(6, solve2("1212")); + assert_eq!(0, solve2("1221")); + assert_eq!(4, solve2("123425")); + assert_eq!(12, solve2("123123")); + assert_eq!(4, solve2("12131415")); } -- cgit 1.4.1