diff options
Diffstat (limited to 'users/riking/adventofcode-2020/day01')
-rw-r--r-- | users/riking/adventofcode-2020/day01/Cargo.lock | 14 | ||||
-rw-r--r-- | users/riking/adventofcode-2020/day01/Cargo.toml | 10 | ||||
-rw-r--r-- | users/riking/adventofcode-2020/day01/default.nix | 10 | ||||
-rw-r--r-- | users/riking/adventofcode-2020/day01/src/main.rs | 85 |
4 files changed, 0 insertions, 119 deletions
diff --git a/users/riking/adventofcode-2020/day01/Cargo.lock b/users/riking/adventofcode-2020/day01/Cargo.lock deleted file mode 100644 index a1a18948a7ea..000000000000 --- a/users/riking/adventofcode-2020/day01/Cargo.lock +++ /dev/null @@ -1,14 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -[[package]] -name = "anyhow" -version = "1.0.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf8dcb5b4bbaa28653b647d8c77bd4ed40183b48882e130c1f1ffb73de069fd7" - -[[package]] -name = "day01" -version = "0.1.0" -dependencies = [ - "anyhow", -] diff --git a/users/riking/adventofcode-2020/day01/Cargo.toml b/users/riking/adventofcode-2020/day01/Cargo.toml deleted file mode 100644 index d90ab548bb7b..000000000000 --- a/users/riking/adventofcode-2020/day01/Cargo.toml +++ /dev/null @@ -1,10 +0,0 @@ -[package] -name = "day01" -version = "0.1.0" -authors = ["Kane York <kanepyork@gmail.com>"] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -anyhow = "1.0.34" diff --git a/users/riking/adventofcode-2020/day01/default.nix b/users/riking/adventofcode-2020/day01/default.nix deleted file mode 100644 index 946069e3a68e..000000000000 --- a/users/riking/adventofcode-2020/day01/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ depot, ... }: - -with depot.third_party; - -naersk.buildPackage { - src = ./.; - - buildInputs = [ ]; - doCheck = true; -} diff --git a/users/riking/adventofcode-2020/day01/src/main.rs b/users/riking/adventofcode-2020/day01/src/main.rs deleted file mode 100644 index e8bc2a05e45a..000000000000 --- a/users/riking/adventofcode-2020/day01/src/main.rs +++ /dev/null @@ -1,85 +0,0 @@ -use anyhow::anyhow; -use std::fs::File; -use std::io::prelude::*; -use std::io::BufReader; - -const PART_2: bool = true; - -fn day01(is_part2: bool, numbers: &Vec<i64>) -> Result<String, anyhow::Error> { - // println!("{:?}", numbers); - - for n1 in numbers.iter() { - for n2 in numbers.iter() { - if is_part2 { - for n3 in numbers.iter() { - if n1 + n2 + n3 == 2020 { - return Ok((n1 * n2 * n3).to_string()); - } - } - } else { - if n1 + n2 == 2020 { - return Ok((n1 * n2).to_string()); - } - } - } - } - - Err(anyhow!("no solution found")) -} - -fn parse(filename: &str) -> Result<Vec<i64>, anyhow::Error> { - let f = File::open(filename)?; - let mut reader = BufReader::new(f); - - let mut values = Vec::<i64>::new(); - - let mut line = String::new(); - loop { - line.clear(); - reader.read_line(&mut line)?; - let trimmed_line = line.trim(); - if trimmed_line.is_empty() { - break; - } - - values.push(trimmed_line.parse()?); - } - Ok(values) -} - -fn main() -> anyhow::Result<()> { - let args: Vec<String> = std::env::args().collect(); - - // println!("{:?}", args); - if args.len() != 2 { - return Err(anyhow!("usage: day01 input_file")); - } - let filename = args.into_iter().skip(1).next().expect("args len == 1"); - - let numbers = parse(&filename)?; - - println!("{}", day01(PART_2, &numbers)?); - - Ok(()) -} - -#[cfg(test)] -mod tests { - use super::day01; - - #[test] - fn test_part1() { - let vec = vec![1721, 979, 366, 299, 675, 1456]; - let result = day01(false, &vec).unwrap(); - - assert_eq!(result, 514579.to_string()); - } - - #[test] - fn test_part2() { - let vec = vec![1721, 979, 366, 299, 675, 1456]; - let result = day01(true, &vec).unwrap(); - - assert_eq!(result, 241861950.to_string()); - } -} |