From da5fe526ac4a7de3ab43a8045152b61e35c91c32 Mon Sep 17 00:00:00 2001 From: Curtis 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(-) (limited to '2017') 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 r'>author
path: root/bin/cash/libedit/chared.c (unfollow)
Commit message (Expand)Author
2019-02-28Add Station ElevenJune McEnroe
2019-02-27Use getsubopt(3) to parse -o options in hiJune McEnroe
2019-02-27Add type and ulimit shell keywordsJune McEnroe
2019-02-27Fix make target pattern whitespace in hiJune McEnroe
2019-02-27Delete extraneous <pre> in html.shJune McEnroe
2019-02-24Use setopt in upJune McEnroe
2019-02-24Add setoptJune McEnroe
2019-02-20Match make targets as TagJune McEnroe
2019-02-20Use $PWD in html.sh to pass absolute path to manJune McEnroe
2019-02-20Factor out html.sh and produce html for all sourcesJune McEnroe
2019-02-20Add Dirk Gently's Holistic Detective AgencyJune McEnroe
2019-02-20Move /opt/pkg after /usr in PATHJune McEnroe
2019-02-20Set man_hard_wrap in nvimJune McEnroe
2019-02-18Use hi -o anchor in upJune McEnroe
2019-02-18Don't match nested parentheses in Tag for CJune McEnroe
2019-02-18Match whitespace between * [] {}June McEnroe
2019-02-18Fix function-like #define regexJune McEnroe
2019-02-18Match Tag in RustJune McEnroe
2019-02-18Match sh functions as TagJune McEnroe
2019-02-18Match Sh and Ss as Tag in mdocJune McEnroe
2019-02-18Match statics and typedefs as TagJune McEnroe
2019-02-18Clean up htmlHeaderJune McEnroe
2019-02-18Remove hi line numberingJune McEnroe
2019-02-18Add Tag class to hiJune McEnroe
2019-02-17Generate HTML with hi -n -f html -o anchorJune McEnroe
2019-02-17Add hi -f html -o anchor for line number linksJune McEnroe
2019-02-17Simplify temp trap in upJune McEnroe
2019-02-17Add line numbers to hiJune McEnroe
2019-02-17Always split spans after newlinesJune McEnroe
2019-02-15Color format specifiers light cyan in vimJune McEnroe
2019-02-15Highlight Interp as yellowJune McEnroe
2019-02-15Highlight strings in sh command substitutionsJune McEnroe
2019-02-15Add nmap gpJune McEnroe
2019-02-14Avoid newline when copying URL to pasteboardJune McEnroe
2019-02-13Add forgotten "sixth" book of H2G2June McEnroe