From 76582a01f7cc1a73f06404d6aff6e88b0acb850b Mon Sep 17 00:00:00 2001 From: Thomas Ruoff Date: Fri, 3 Dec 2021 01:08:14 +0100 Subject: [PATCH] day 2 in rust --- day02/.gitignore | 1 + day02/Cargo.lock | 7 + day02/Cargo.toml | 8 + day02/data/input | 1000 +++++++++++++++++++++++++++++++++++++++++++++ day02/src/main.rs | 32 ++ 5 files changed, 1048 insertions(+) create mode 100644 day02/.gitignore create mode 100644 day02/Cargo.lock create mode 100644 day02/Cargo.toml create mode 100644 day02/data/input create mode 100644 day02/src/main.rs diff --git a/day02/.gitignore b/day02/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/day02/.gitignore @@ -0,0 +1 @@ +/target diff --git a/day02/Cargo.lock b/day02/Cargo.lock new file mode 100644 index 0000000..52d399b --- /dev/null +++ b/day02/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "day02" +version = "0.1.0" diff --git a/day02/Cargo.toml b/day02/Cargo.toml new file mode 100644 index 0000000..843335d --- /dev/null +++ b/day02/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "day02" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/day02/data/input b/day02/data/input new file mode 100644 index 0000000..4b708f6 --- /dev/null +++ b/day02/data/input @@ -0,0 +1,1000 @@ +forward 1 +forward 8 +down 9 +forward 3 +down 6 +down 1 +down 1 +forward 5 +forward 5 +forward 8 +down 6 +forward 7 +down 3 +down 4 +up 1 +forward 7 +forward 5 +forward 8 +down 1 +forward 9 +forward 9 +forward 7 +up 8 +forward 5 +forward 9 +down 3 +forward 2 +down 5 +down 4 +up 2 +up 5 +forward 3 +forward 8 +down 9 +down 1 +forward 2 +forward 6 +up 2 +up 9 +forward 8 +down 7 +forward 2 +up 5 +forward 7 +down 9 +forward 9 +forward 5 +down 8 +down 6 +forward 2 +up 4 +down 2 +down 9 +forward 4 +down 4 +forward 9 +down 8 +down 7 +down 4 +forward 6 +forward 9 +up 7 +down 2 +up 6 +down 8 +forward 3 +forward 9 +forward 7 +down 1 +forward 1 +forward 7 +forward 5 +down 4 +down 1 +forward 4 +forward 9 +forward 6 +down 5 +down 1 +forward 9 +down 6 +down 4 +forward 8 +up 8 +forward 9 +up 9 +up 9 +up 7 +forward 4 +down 4 +forward 4 +forward 2 +forward 2 +forward 9 +up 4 +forward 4 +forward 3 +forward 5 +down 3 +up 4 +forward 3 +forward 5 +forward 9 +forward 7 +down 1 +forward 4 +down 5 +up 6 +down 9 +forward 8 +down 1 +forward 3 +down 2 +up 8 +down 5 +down 8 +forward 5 +down 6 +forward 6 +down 7 +up 5 +forward 8 +forward 5 +forward 7 +up 3 +down 6 +up 9 +forward 1 +forward 7 +forward 3 +forward 8 +up 4 +up 9 +down 5 +forward 5 +forward 4 +forward 4 +down 9 +up 6 +forward 5 +forward 2 +down 6 +down 2 +forward 9 +down 7 +forward 8 +down 4 +forward 8 +forward 8 +up 7 +up 5 +forward 6 +forward 4 +up 4 +forward 2 +up 3 +down 8 +forward 1 +forward 8 +forward 8 +forward 4 +up 7 +forward 2 +down 8 +forward 1 +down 1 +down 4 +up 3 +forward 8 +forward 1 +down 9 +up 5 +down 5 +forward 9 +forward 4 +up 7 +down 2 +down 4 +forward 1 +forward 6 +up 8 +up 1 +forward 8 +down 5 +down 5 +forward 9 +down 8 +forward 9 +down 1 +up 7 +forward 8 +up 2 +down 2 +up 1 +up 9 +forward 6 +down 5 +forward 1 +down 2 +forward 5 +down 3 +up 8 +down 2 +down 8 +forward 7 +forward 2 +up 3 +forward 3 +down 1 +forward 4 +down 7 +up 5 +forward 8 +forward 8 +up 6 +up 4 +up 4 +down 7 +forward 2 +forward 1 +forward 6 +up 3 +forward 3 +forward 9 +down 4 +forward 2 +down 9 +down 8 +forward 5 +forward 2 +forward 4 +forward 5 +forward 7 +down 4 +up 5 +down 7 +forward 4 +up 7 +down 9 +down 4 +down 3 +forward 8 +down 5 +forward 8 +forward 8 +down 3 +down 8 +down 2 +forward 4 +forward 5 +down 7 +down 7 +down 6 +up 9 +down 9 +down 5 +forward 4 +down 1 +down 7 +up 4 +down 8 +up 5 +up 1 +down 9 +down 7 +forward 9 +forward 7 +down 6 +up 2 +forward 1 +down 8 +up 2 +forward 8 +down 2 +forward 2 +down 9 +forward 2 +forward 3 +forward 7 +up 3 +up 3 +up 3 +forward 5 +up 9 +up 1 +down 9 +down 4 +down 5 +up 9 +up 7 +down 9 +forward 3 +down 5 +down 6 +down 3 +up 6 +forward 8 +up 6 +up 8 +down 4 +forward 8 +down 8 +forward 7 +up 1 +forward 4 +down 2 +forward 7 +down 6 +up 8 +forward 1 +down 8 +down 4 +forward 7 +forward 2 +up 4 +forward 9 +forward 9 +down 8 +up 1 +down 3 +forward 7 +down 9 +forward 2 +forward 5 +down 4 +down 8 +down 3 +up 1 +down 2 +up 3 +forward 1 +forward 5 +forward 3 +down 2 +up 2 +forward 7 +down 6 +forward 3 +down 8 +forward 5 +forward 4 +up 2 +forward 4 +up 2 +down 4 +forward 8 +forward 5 +down 1 +forward 6 +down 2 +down 5 +up 8 +forward 5 +down 2 +up 5 +down 5 +forward 4 +forward 3 +forward 8 +down 9 +up 3 +forward 4 +forward 2 +forward 2 +forward 2 +down 4 +forward 8 +forward 5 +up 3 +down 1 +forward 3 +up 5 +forward 8 +down 6 +forward 6 +down 9 +forward 6 +up 5 +down 6 +up 9 +forward 8 +down 2 +forward 9 +down 7 +down 5 +down 4 +forward 3 +forward 2 +forward 1 +forward 7 +down 3 +forward 4 +up 6 +down 5 +down 4 +down 8 +down 4 +up 6 +forward 3 +down 4 +down 6 +forward 9 +forward 6 +up 4 +down 2 +down 7 +forward 2 +forward 9 +down 4 +down 8 +down 3 +down 4 +forward 9 +forward 4 +forward 1 +down 7 +forward 2 +up 1 +forward 7 +down 7 +forward 7 +forward 5 +up 8 +down 4 +up 7 +up 2 +up 7 +up 8 +down 9 +forward 8 +forward 8 +down 3 +forward 9 +down 3 +up 7 +down 1 +down 9 +forward 2 +up 4 +down 2 +forward 2 +up 5 +up 5 +up 1 +forward 7 +up 5 +down 3 +up 8 +down 9 +down 7 +up 4 +down 8 +down 4 +forward 8 +up 6 +down 2 +down 4 +forward 7 +forward 8 +forward 8 +forward 1 +down 4 +down 4 +forward 4 +down 7 +forward 3 +down 3 +down 6 +down 7 +down 6 +forward 8 +down 4 +down 7 +down 1 +down 7 +down 5 +down 2 +up 5 +forward 9 +down 3 +down 4 +down 4 +forward 5 +down 9 +forward 1 +up 1 +up 1 +down 3 +forward 8 +up 6 +up 6 +down 1 +up 2 +down 7 +down 9 +up 7 +forward 7 +down 6 +down 5 +down 5 +up 8 +forward 7 +down 1 +down 6 +forward 4 +forward 5 +forward 5 +forward 2 +down 5 +up 6 +down 5 +forward 1 +down 9 +up 4 +down 7 +down 8 +down 5 +down 8 +forward 7 +forward 2 +up 3 +down 7 +forward 1 +forward 4 +forward 5 +forward 1 +forward 7 +down 6 +forward 9 +forward 8 +down 5 +forward 5 +forward 8 +forward 3 +up 1 +forward 6 +forward 9 +forward 8 +down 3 +forward 8 +forward 7 +down 1 +forward 9 +down 9 +forward 6 +forward 4 +forward 2 +forward 9 +down 7 +down 6 +forward 4 +forward 1 +forward 3 +forward 9 +up 4 +down 5 +forward 6 +down 8 +up 5 +down 9 +down 6 +forward 7 +down 9 +forward 6 +forward 5 +down 1 +down 4 +up 6 +forward 2 +down 8 +down 5 +up 5 +forward 6 +forward 5 +down 8 +down 4 +down 3 +down 8 +forward 3 +forward 9 +up 6 +down 9 +down 1 +forward 7 +forward 5 +down 5 +down 1 +forward 7 +forward 3 +up 6 +forward 1 +up 9 +forward 1 +down 4 +down 3 +down 3 +up 6 +forward 9 +forward 5 +up 9 +up 5 +forward 5 +forward 7 +forward 9 +down 8 +forward 2 +down 7 +down 7 +forward 3 +down 2 +up 1 +down 4 +down 6 +down 8 +forward 8 +forward 6 +up 3 +forward 9 +down 8 +up 7 +forward 6 +forward 9 +up 8 +forward 3 +down 9 +forward 3 +forward 4 +down 3 +down 2 +forward 2 +down 5 +down 9 +down 2 +down 7 +down 4 +down 6 +forward 5 +up 1 +forward 9 +forward 2 +up 8 +forward 8 +down 3 +forward 7 +down 5 +forward 5 +down 5 +down 9 +down 9 +down 6 +down 5 +down 4 +up 6 +forward 9 +down 2 +down 5 +up 3 +forward 8 +forward 1 +down 4 +down 8 +forward 6 +forward 7 +up 2 +forward 1 +forward 2 +down 7 +down 6 +up 7 +forward 7 +down 6 +down 6 +down 8 +forward 8 +up 5 +up 9 +forward 8 +forward 1 +down 6 +down 6 +up 7 +forward 6 +up 5 +forward 7 +down 1 +forward 1 +forward 9 +up 7 +down 3 +forward 4 +down 6 +down 6 +up 5 +up 7 +down 1 +up 2 +down 8 +down 1 +forward 2 +down 3 +forward 8 +forward 2 +up 2 +down 7 +forward 5 +forward 7 +down 2 +up 1 +down 1 +down 6 +down 4 +up 1 +forward 2 +forward 7 +forward 8 +down 1 +forward 6 +down 5 +down 8 +up 6 +down 7 +forward 6 +down 8 +down 6 +down 9 +forward 8 +down 9 +down 6 +up 2 +down 2 +down 5 +down 5 +up 8 +forward 6 +forward 7 +up 4 +down 5 +up 5 +forward 6 +forward 8 +up 6 +up 7 +up 3 +up 9 +down 6 +forward 3 +forward 3 +down 6 +down 8 +down 2 +down 2 +up 7 +up 6 +forward 5 +forward 4 +down 2 +down 3 +forward 8 +down 9 +forward 3 +down 8 +down 8 +forward 9 +forward 7 +down 8 +down 7 +up 2 +down 8 +down 1 +down 7 +up 7 +forward 3 +forward 5 +up 1 +down 9 +forward 3 +down 4 +down 5 +down 3 +down 8 +up 7 +forward 4 +down 6 +forward 9 +forward 9 +forward 1 +up 6 +up 8 +forward 6 +down 6 +down 6 +forward 1 +up 4 +down 2 +forward 8 +forward 6 +down 2 +down 9 +down 6 +down 4 +forward 5 +down 5 +down 7 +down 6 +forward 8 +down 8 +down 2 +up 2 +up 2 +down 3 +forward 2 +down 2 +down 5 +down 3 +up 5 +down 8 +forward 8 +down 8 +down 4 +down 3 +forward 7 +forward 1 +forward 1 +down 7 +down 6 +down 2 +up 9 +up 7 +down 9 +forward 1 +down 3 +down 4 +down 7 +forward 6 +down 8 +forward 3 +down 6 +forward 4 +down 3 +down 5 +down 4 +forward 4 +up 4 +up 1 +up 2 +down 3 +forward 6 +up 6 +forward 8 +forward 9 +forward 3 +forward 4 +forward 2 +forward 8 +forward 7 +up 4 +down 5 +forward 8 +forward 6 +down 2 +forward 3 +down 5 +down 8 +forward 3 +forward 4 +down 3 +down 9 +down 6 +up 6 +down 1 +down 8 +forward 7 +down 3 +forward 8 +forward 4 +down 2 +up 7 +down 5 +forward 1 +forward 7 +forward 1 +forward 3 +down 8 +down 7 +forward 5 +forward 3 +down 1 +forward 7 +down 4 +down 3 +down 6 +down 9 +forward 6 +down 1 +forward 3 +forward 3 +forward 5 +forward 9 +up 3 +up 6 +forward 7 +up 5 +up 9 +down 2 +down 5 +up 5 +forward 4 +forward 4 +forward 6 +up 2 +down 9 +down 4 +down 2 +forward 7 +down 3 +up 4 +up 6 +forward 7 +forward 1 +forward 1 +down 7 +forward 5 +forward 4 +up 6 +forward 4 +forward 2 +forward 6 +up 1 +up 5 +forward 8 +up 2 +forward 3 +forward 5 +up 9 +down 4 +forward 1 +up 7 +down 5 +forward 7 +forward 2 +forward 8 +down 8 +down 2 +forward 2 +forward 4 +forward 8 +forward 1 +forward 8 +forward 2 +down 9 +forward 7 +down 7 +down 5 +up 9 +forward 5 +down 1 +down 9 +down 2 +forward 6 +down 8 +up 9 +forward 5 +down 2 +forward 1 +up 4 +forward 1 +down 9 +up 3 +down 3 +down 2 +forward 9 +down 5 +forward 4 +down 1 +forward 4 +down 8 +down 3 +forward 8 +forward 2 +forward 3 +down 1 +forward 1 +down 2 +forward 6 +up 3 +up 5 +up 9 +forward 9 +down 5 +down 5 +forward 4 +up 6 +down 7 +down 2 +forward 8 +forward 6 +forward 6 +up 6 +down 7 +forward 8 diff --git a/day02/src/main.rs b/day02/src/main.rs new file mode 100644 index 0000000..d267694 --- /dev/null +++ b/day02/src/main.rs @@ -0,0 +1,32 @@ +use std::fs::File; +use std::io::{self, BufRead}; +use std::path::Path; + +fn main() { + let mut depth = 0; + let mut pos_h = 0; + if let Ok(lines) = read_lines("./data/input") { + for line in lines { + if let Ok(str) = line { + let words: Vec<&str> = str.split_whitespace().collect(); + let direction = words[0]; + let number = words[1].parse::().unwrap(); + + match direction { + "down" => depth = depth + number, + "up" => depth = depth - number, + "forward" => pos_h = pos_h + number, + _ => eprintln!("UNKNOWN!!!!!"), + + } + } + } + } + println!("{}", depth * pos_h); +} + +fn read_lines

(filename: P) -> io::Result>> +where P: AsRef, { + let file = File::open(filename)?; + Ok(io::BufReader::new(file).lines()) +}