From 6faab62f5e0e107002a18f9eb94d77487691469d Mon Sep 17 00:00:00 2001 From: kageru Date: Fri, 13 Dec 2019 08:24:01 +0100 Subject: [PATCH] Add D13P1 --- 2019/13/Cargo.toml | 10 ++++++++++ 2019/13/src/main.rs | 12 ++++++++++++ 2019/intcode/src/intcomputer.rs | 8 ++++++++ 2019/intcode/src/tests.rs | 2 -- 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 2019/13/Cargo.toml create mode 100644 2019/13/src/main.rs diff --git a/2019/13/Cargo.toml b/2019/13/Cargo.toml new file mode 100644 index 0000000..9cdd69f --- /dev/null +++ b/2019/13/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "day13" +version = "0.1.0" +authors = ["kageru "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +intcode = { path = "../intcode" } diff --git a/2019/13/src/main.rs b/2019/13/src/main.rs new file mode 100644 index 0000000..4f24586 --- /dev/null +++ b/2019/13/src/main.rs @@ -0,0 +1,12 @@ +use intcode::*; + +fn main() { + let part1 = IntComputer::new(read_input(), 0, vec![]) + .get_all_outputs() + .into_iter() + .skip(2) + .step_by(3) + .filter(|s| s == &2) + .count(); + println!("Part 1: {}", part1); +} diff --git a/2019/intcode/src/intcomputer.rs b/2019/intcode/src/intcomputer.rs index 3af44b2..2f55867 100644 --- a/2019/intcode/src/intcomputer.rs +++ b/2019/intcode/src/intcomputer.rs @@ -42,6 +42,14 @@ impl IntComputer { } } + pub fn get_all_outputs(&mut self) -> Vec { + let mut outputs = Vec::new(); + while let IntComputerResult::Output(o) = self.run() { + outputs.push(o); + } + outputs + } + #[rustfmt::skip] fn get_next(&mut self, mode: Mode) -> i64 { let value = *self.tape.get(self.pos as usize).unwrap(); diff --git a/2019/intcode/src/tests.rs b/2019/intcode/src/tests.rs index d25e8e6..48d86c0 100644 --- a/2019/intcode/src/tests.rs +++ b/2019/intcode/src/tests.rs @@ -41,7 +41,6 @@ fn test_find_max_with_loops() { ), Some(139629729) ); - /* assert_eq!( find_max( 5..10, @@ -49,7 +48,6 @@ fn test_find_max_with_loops() { ), Some(18216) ); - */ } #[test]