From 4b4ba0602dd1cbbfd0403e3ff3edec61d90c69a2 Mon Sep 17 00:00:00 2001 From: Tyler Hallada Date: Wed, 12 Dec 2018 00:04:49 -0500 Subject: [PATCH] Completed Day 1 A bit behind! :o --- .gitignore | 2 + Cargo.lock | 4 + Cargo.toml | 7 + inputs/1.txt | 968 ++++++++++++++++++++++++++++++++++++++++++++++ inputs/1_test.txt | 3 + src/day1.rs | 31 ++ src/main.rs | 6 + 7 files changed, 1021 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 inputs/1.txt create mode 100644 inputs/1_test.txt create mode 100644 src/day1.rs create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..53eaa21 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/target +**/*.rs.bk diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..616734c --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,4 @@ +[[package]] +name = "advent-of-code-2018" +version = "0.1.0" + diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..2b02252 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "advent-of-code-2018" +version = "0.1.0" +authors = ["Tyler Hallada "] +edition = "2018" + +[dependencies] diff --git a/inputs/1.txt b/inputs/1.txt new file mode 100644 index 0000000..079567f --- /dev/null +++ b/inputs/1.txt @@ -0,0 +1,968 @@ ++11 ++9 ++15 +-17 ++8 ++16 ++5 ++13 ++8 +-6 ++12 +-17 +-16 ++13 ++16 +-15 +-5 ++11 ++19 ++5 +-8 ++20 ++18 ++15 +-4 +-12 ++8 ++2 ++15 ++12 +-13 +-4 +-1 +-14 +-15 +-6 +-9 +-13 ++18 ++13 ++6 +-8 +-3 +-19 ++8 ++17 ++8 ++5 +-11 ++15 +-7 ++9 +-18 +-9 ++17 +-14 +-19 ++4 +-6 ++4 ++1 +-12 ++4 +-1 +-9 ++4 ++19 ++20 ++11 ++8 ++19 +-13 ++17 ++6 ++8 +-11 ++5 ++9 +-15 ++17 +-12 ++6 +-19 +-2 ++17 +-18 ++7 +-5 ++19 ++15 ++5 +-6 ++2 ++5 ++18 ++11 ++2 ++5 +-14 ++17 ++17 ++1 ++17 +-9 +-1 ++5 +-11 ++5 +-17 ++2 ++14 ++16 +-3 ++17 ++18 ++1 +-16 ++19 +-11 +-10 ++3 ++8 ++17 ++19 +-18 ++6 +-1 +-2 ++14 +-2 ++12 ++11 ++1 +-19 +-1 ++18 ++13 +-6 +-10 +-13 ++12 +-11 ++19 ++14 ++17 +-2 +-18 +-4 ++11 +-12 +-2 +-21 ++7 +-1 +-5 +-13 +-18 +-18 +-7 ++9 ++12 ++6 +-12 ++20 +-19 ++6 +-19 ++3 +-16 ++20 +-17 +-8 ++4 ++8 +-21 ++18 +-6 +-13 ++2 ++5 +-14 +-16 +-19 +-17 ++4 +-15 +-11 +-3 ++6 ++13 ++18 +-16 +-16 +-15 +-15 +-2 ++1 +-3 ++13 ++25 ++1 ++14 +-8 +-8 +-19 ++7 ++11 ++20 ++5 +-9 ++8 ++19 +-9 ++3 ++1 ++1 +-12 ++18 ++15 +-5 ++11 +-1 ++18 +-2 +-18 +-14 +-1 +-16 ++12 ++12 +-20 ++10 ++25 +-13 +-17 +-20 +-13 ++11 +-40 +-19 ++5 +-21 +-9 +-15 +-6 ++3 ++13 +-5 +-2 ++33 ++3 +-7 ++42 ++32 +-13 ++2 ++37 +-1 +-20 ++30 ++3 ++8 ++10 ++11 +-5 +-26 ++35 ++16 +-12 ++9 ++16 ++18 +-13 +-15 ++19 ++6 ++18 ++16 ++11 ++16 +-2 +-10 ++1 +-2 ++17 ++7 +-1 ++17 ++6 ++15 ++7 +-5 +-6 ++9 +-4 +-17 +-14 +-1 +-21 +-2 ++15 ++3 ++8 +-18 +-17 +-14 ++6 +-17 ++20 ++13 ++14 +-1 +-1 ++3 +-11 ++19 ++19 ++7 +-18 +-9 ++11 +-12 ++11 ++4 ++2 ++8 +-2 ++6 +-20 ++5 ++6 +-13 +-8 ++6 ++11 ++8 ++2 ++7 ++11 +-7 ++18 ++11 ++15 +-16 +-18 ++6 ++10 ++6 ++15 ++13 ++4 ++4 ++14 ++14 +-47 ++17 +-7 +-20 +-1 ++19 ++16 +-23 +-13 +-17 ++13 +-8 ++6 +-20 ++4 ++15 ++4 ++19 ++19 +-7 +-24 +-17 +-19 +-2 ++19 +-13 ++8 +-4 +-19 +-9 ++29 ++21 +-29 ++2 ++15 ++22 ++1 ++21 +-13 +-14 ++12 +-57 +-5 +-49 +-10 +-19 +-19 +-6 ++7 ++21 +-12 +-13 +-13 ++4 +-15 ++9 ++21 +-7 ++19 ++32 ++31 +-27 +-21 ++25 +-101 ++69 +-75 ++26 +-22 +-45 +-30 ++5 +-40 +-15 +-880 +-60727 ++14 +-13 +-18 ++7 ++2 +-5 ++6 ++14 ++5 ++5 +-18 +-15 +-9 ++7 +-10 ++19 ++4 ++7 ++6 ++3 ++21 ++2 ++5 +-19 ++15 +-11 +-19 +-7 +-1 +-16 ++4 +-12 +-15 ++3 ++5 +-6 +-14 ++11 +-16 +-7 +-15 ++8 ++12 +-2 +-9 +-12 +-17 ++19 +-5 +-19 ++16 +-10 +-13 +-14 +-1 +-10 +-18 +-6 +-11 ++8 +-11 ++4 ++14 ++9 ++8 +-18 +-9 ++8 +-19 +-5 +-14 ++13 ++19 ++13 ++16 ++19 +-4 +-4 ++3 ++19 +-4 +-7 +-15 ++6 +-9 +-15 ++12 +-14 ++6 +-17 ++9 ++13 +-4 +-20 ++17 +-9 +-12 ++16 ++6 +-9 ++19 ++10 ++11 ++17 +-19 +-1 ++12 ++12 ++1 +-6 +-1 ++4 +-12 ++11 +-14 ++19 +-3 +-9 +-6 +-23 +-2 +-13 ++18 +-2 ++10 ++2 ++8 +-9 +-20 +-17 +-21 +-14 ++11 +-5 +-15 ++2 +-9 ++4 +-7 +-12 ++9 +-1 +-11 ++1 +-10 ++11 +-17 +-10 +-17 +-3 +-10 ++11 ++15 +-19 +-14 ++1 ++2 ++18 ++17 ++3 ++17 +-18 +-15 ++2 +-3 +-14 ++9 ++9 ++6 +-18 ++13 +-21 +-18 ++12 ++7 ++13 +-11 ++20 ++12 ++1 ++15 +-14 ++4 ++11 ++18 +-2 +-7 +-12 +-11 ++5 ++10 ++6 ++8 ++18 ++6 +-13 ++19 +-5 +-3 ++14 +-3 +-20 +-3 +-3 ++16 +-15 +-12 ++8 +-24 +-16 +-13 +-3 ++13 ++6 +-12 +-31 ++7 +-18 ++17 +-13 ++1 +-15 ++16 ++4 +-1 +-17 +-1 ++16 +-4 ++13 ++8 ++3 ++33 ++8 +-6 ++20 +-4 ++2 ++13 +-29 +-17 +-22 +-24 +-5 ++2 +-12 +-1 ++2 +-15 ++2 +-11 ++6 ++1 +-2 ++5 ++4 +-22 ++5 ++19 +-13 +-7 ++16 ++6 ++2 +-22 ++19 ++9 ++8 +-9 +-12 +-18 +-13 ++1 ++5 +-9 ++10 +-11 +-10 ++16 +-15 +-2 +-16 ++1 +-15 +-17 +-3 ++6 ++11 ++4 ++11 +-16 +-3 ++6 +-1 ++13 ++18 ++6 +-2 +-6 +-4 +-5 ++20 ++19 +-8 ++1 +-13 ++16 ++1 ++10 +-25 +-19 +-4 ++9 +-8 ++17 ++6 +-19 +-2 ++5 ++12 ++7 +-21 +-12 ++3 +-7 +-11 +-3 +-18 ++2 ++12 ++20 +-23 +-19 +-17 ++9 +-19 ++1 +-14 +-5 +-4 +-9 ++17 ++4 ++3 ++15 +-13 ++1 +-12 +-17 ++8 ++8 +-20 +-17 ++15 +-16 ++10 ++7 ++2 +-10 +-2 ++8 ++19 +-6 +-17 +-8 ++9 ++17 ++25 +-5 +-18 ++4 ++18 ++9 ++18 +-14 +-2 ++11 ++14 +-17 +-15 ++38 ++12 +-2 ++14 ++4 ++21 ++16 ++12 ++15 ++23 +-1 ++6 ++9 +-24 +-6 +-13 +-3 ++33 +-13 ++62 ++81 ++11 +-5 +-27 ++9 +-7 ++20 +-19 +-4 ++27 ++28 +-29 ++82 ++11 +-10 ++8 +-22 ++42 ++34 +-24 +-15 ++19 +-66 +-70 +-34 +-18 +-548 ++408 +-1249 +-60542 ++6 +-17 +-4 ++6 +-7 ++3 ++14 ++2 ++15 +-6 +-5 ++19 +-17 +-10 ++6 +-11 ++2 +-4 ++10 +-5 +-11 +-13 +-12 +-14 +-10 +-9 ++17 ++9 ++15 ++1 +-10 +-10 ++14 ++16 +-17 +-15 ++7 +-6 +-16 +-10 ++15 +-2 +-7 +-3 +-5 +-14 +-8 +-9 ++16 ++7 ++17 +-22 ++12 +-16 ++18 ++5 ++15 ++10 ++20 ++11 +-5 ++12 +-16 ++8 +-16 ++13 ++14 +-5 +-12 +-9 +-16 +-5 ++16 +-18 ++21 +-9 +-13 +-8 +-10 ++14 ++18 +-17 +-16 ++8 +-15 ++2 +-4 ++3 +-21 ++17 +-16 ++18 ++18 +-3 +-21 ++1 +-19 +-3 +-2 +-4 +-5 +-20 +-19 ++6 +-19 ++3 +-12 ++124236 diff --git a/inputs/1_test.txt b/inputs/1_test.txt new file mode 100644 index 0000000..f1391a4 --- /dev/null +++ b/inputs/1_test.txt @@ -0,0 +1,3 @@ ++5 +-5 ++3 diff --git a/src/day1.rs b/src/day1.rs new file mode 100644 index 0000000..7fcaaef --- /dev/null +++ b/src/day1.rs @@ -0,0 +1,31 @@ +use std::error::Error; +use std::fs::File; +use std::io::{BufRead, BufReader}; + +const INPUT: &str = "inputs/1.txt"; + +pub fn solve() -> Result> { + calculate_resulting_frequency(INPUT) +} + +fn calculate_resulting_frequency(filename: &str) -> Result> { + let mut freq: i32 = 0; + let file = File::open(filename)?; + for line in BufReader::new(file).lines() { + let adjustment: i32 = line?.parse()?; + freq += adjustment; + } + Ok(freq) +} + +#[cfg(test)] +mod tests { + use super::*; + + const TEST_INPUT: &str = "inputs/1_test.txt"; + + #[test] + fn finds_resulting_frequency() { + assert_eq!(calculate_resulting_frequency(TEST_INPUT).unwrap(), 3); + } +} diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..e1ea972 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,6 @@ +mod day1; + +fn main() { + println!("Day 1:"); + println!("{}", day1::solve().unwrap()); +}