From b6d882c8a703917c97633b23483dccec4959b070 Mon Sep 17 00:00:00 2001 From: Jeremy Kaplan Date: Sat, 1 Dec 2018 12:09:39 -0800 Subject: [PATCH] Day 1 part 2 --- 2018/src/main.rs | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/2018/src/main.rs b/2018/src/main.rs index 0e977de..b722376 100644 --- a/2018/src/main.rs +++ b/2018/src/main.rs @@ -1,13 +1,40 @@ +use std::collections; use std::str; -fn main() { +fn day1part1() -> i64 { let input = include_str!("day1-input.txt"); let mut freq = 0; for line in str::lines(input) { - match line.parse::() { + match line.parse::() { Ok(d) => freq += d, Err(s) => println!("{}", s), } } - println!("{}", freq); + freq +} + +fn day1part2() -> i64 { + let input = include_str!("day1-input.txt"); + let mut freqs = collections::HashSet::new(); + let mut freq = 0; + freqs.insert(freq); + loop { + for line in str::lines(input) { + match line.parse::() { + Ok(d) => { + freq += d; + if freqs.contains(&freq) { + return freq; + } + freqs.insert(freq); + } + Err(s) => println!("{}", s), + } + } + } +} + +fn main() { + println!("{}", day1part1()); + println!("{}", day1part2()); }