diff --git a/input/day2.txt b/input/day2.txt new file mode 100644 index 0000000..6445102 --- /dev/null +++ b/input/day2.txt @@ -0,0 +1,1000 @@ +forward 7 +forward 9 +forward 9 +down 3 +down 8 +down 3 +forward 6 +down 7 +up 3 +forward 3 +up 3 +down 3 +down 9 +down 6 +forward 8 +down 3 +down 9 +forward 4 +forward 3 +down 1 +forward 2 +down 5 +forward 9 +forward 6 +up 1 +forward 8 +down 9 +forward 8 +down 7 +down 9 +down 4 +down 2 +forward 2 +down 6 +up 8 +forward 3 +forward 7 +down 2 +forward 4 +down 3 +down 1 +down 8 +forward 5 +forward 6 +down 3 +forward 1 +up 1 +down 8 +forward 5 +forward 2 +forward 9 +up 4 +down 1 +down 3 +up 5 +up 5 +forward 7 +up 1 +forward 8 +forward 4 +forward 3 +down 9 +forward 2 +forward 5 +down 5 +up 7 +forward 4 +up 5 +down 5 +down 4 +down 9 +forward 1 +up 3 +forward 6 +down 3 +forward 9 +down 1 +up 5 +down 7 +forward 3 +forward 3 +up 9 +down 2 +down 4 +forward 1 +forward 2 +down 4 +down 4 +up 5 +forward 9 +down 3 +down 1 +down 8 +down 2 +down 8 +forward 9 +forward 5 +down 2 +forward 8 +up 9 +down 8 +down 5 +down 6 +down 2 +down 4 +up 2 +forward 4 +down 9 +forward 4 +down 6 +down 9 +forward 9 +down 3 +down 1 +up 2 +down 6 +forward 2 +down 4 +down 6 +forward 5 +up 2 +up 8 +down 2 +up 9 +forward 6 +down 8 +down 7 +forward 3 +forward 5 +forward 4 +down 5 +forward 2 +up 1 +up 3 +up 7 +forward 2 +forward 2 +up 6 +down 3 +down 7 +down 8 +forward 5 +up 5 +down 9 +forward 7 +down 2 +down 6 +forward 8 +down 1 +down 7 +down 2 +forward 2 +forward 4 +down 5 +up 5 +down 6 +down 5 +down 8 +forward 5 +forward 4 +down 3 +up 7 +up 4 +forward 7 +down 9 +down 3 +down 7 +forward 6 +up 4 +down 2 +down 9 +up 1 +down 2 +up 7 +down 7 +down 1 +down 5 +forward 9 +down 5 +down 8 +down 4 +down 5 +forward 3 +down 5 +forward 5 +down 6 +forward 6 +up 7 +down 7 +down 3 +down 8 +down 8 +up 5 +down 3 +up 4 +down 1 +up 4 +up 2 +up 2 +forward 6 +forward 3 +forward 4 +down 9 +up 2 +forward 2 +down 2 +down 6 +up 2 +forward 1 +up 4 +forward 5 +up 5 +forward 3 +forward 7 +down 2 +up 6 +forward 1 +up 6 +down 8 +forward 1 +forward 7 +up 3 +up 5 +forward 4 +down 1 +forward 7 +up 7 +forward 5 +forward 6 +forward 6 +forward 2 +down 6 +down 1 +forward 4 +forward 2 +forward 2 +up 2 +forward 1 +down 2 +down 8 +forward 5 +forward 3 +up 1 +forward 5 +down 8 +down 6 +down 1 +up 2 +down 1 +down 3 +forward 3 +up 9 +forward 5 +down 6 +up 8 +down 9 +up 4 +down 8 +forward 2 +forward 9 +forward 6 +forward 2 +up 5 +down 5 +down 6 +forward 2 +forward 3 +forward 5 +forward 7 +down 8 +forward 1 +forward 1 +forward 4 +forward 5 +down 4 +forward 6 +forward 4 +forward 6 +down 5 +down 8 +down 7 +up 9 +down 8 +forward 2 +down 9 +forward 3 +down 4 +up 1 +down 6 +forward 4 +down 9 +down 5 +down 3 +up 6 +down 1 +down 3 +forward 2 +down 7 +down 9 +forward 6 +forward 1 +forward 8 +down 6 +down 2 +down 2 +forward 7 +up 8 +forward 5 +forward 7 +forward 7 +forward 3 +up 3 +forward 3 +up 4 +down 5 +forward 1 +forward 7 +forward 7 +down 9 +up 4 +forward 1 +down 9 +forward 3 +forward 8 +down 3 +forward 6 +down 7 +down 2 +forward 1 +down 4 +down 6 +down 2 +forward 7 +forward 7 +down 9 +forward 7 +down 8 +forward 7 +down 5 +down 7 +forward 1 +forward 7 +up 6 +down 5 +forward 9 +down 2 +forward 7 +up 4 +down 1 +down 7 +forward 4 +down 2 +down 4 +forward 4 +down 8 +forward 3 +forward 2 +down 3 +down 4 +forward 2 +forward 6 +down 9 +down 3 +forward 9 +up 4 +up 1 +forward 7 +up 3 +up 8 +down 2 +up 2 +up 6 +forward 8 +down 3 +up 4 +up 6 +down 8 +forward 5 +down 1 +up 2 +up 5 +forward 7 +down 6 +up 4 +forward 1 +up 9 +forward 8 +down 3 +up 8 +down 3 +down 5 +up 6 +up 8 +down 2 +up 4 +down 1 +down 2 +forward 4 +up 9 +up 1 +up 2 +forward 4 +forward 9 +up 8 +forward 8 +down 8 +up 9 +forward 3 +forward 2 +down 7 +up 1 +up 8 +up 1 +up 6 +up 9 +forward 6 +forward 8 +forward 8 +forward 6 +down 2 +down 4 +forward 8 +up 3 +forward 1 +down 3 +down 1 +down 9 +up 9 +down 4 +forward 7 +down 3 +forward 1 +down 6 +forward 7 +forward 3 +forward 2 +down 5 +forward 6 +up 8 +forward 6 +forward 8 +down 1 +up 3 +down 1 +down 7 +up 2 +down 8 +forward 7 +down 1 +forward 5 +forward 5 +up 9 +down 1 +forward 6 +up 1 +forward 1 +down 8 +down 5 +forward 7 +forward 5 +forward 3 +down 2 +down 4 +forward 3 +forward 2 +forward 3 +down 1 +down 6 +down 8 +down 5 +forward 6 +forward 5 +down 8 +forward 2 +forward 6 +forward 1 +down 3 +down 7 +down 1 +down 1 +down 6 +down 5 +forward 1 +up 9 +down 4 +down 8 +forward 4 +down 3 +down 6 +down 9 +up 4 +forward 6 +down 1 +down 3 +up 5 +up 7 +forward 6 +up 6 +down 6 +down 2 +up 1 +forward 1 +down 3 +forward 2 +down 6 +down 5 +down 1 +down 5 +up 2 +down 3 +up 1 +forward 7 +down 3 +forward 5 +down 4 +up 1 +down 7 +forward 3 +up 9 +down 2 +up 5 +forward 7 +up 8 +forward 8 +forward 8 +up 8 +forward 8 +forward 1 +forward 2 +down 8 +forward 6 +down 3 +down 9 +forward 9 +forward 4 +down 6 +down 4 +forward 3 +up 2 +up 7 +down 9 +down 2 +forward 8 +down 2 +down 3 +down 7 +forward 9 +down 4 +up 3 +down 4 +down 5 +forward 9 +down 9 +forward 4 +forward 3 +down 6 +forward 4 +down 5 +down 2 +forward 1 +down 4 +forward 2 +up 3 +up 3 +forward 4 +down 4 +up 2 +up 8 +forward 8 +down 5 +down 8 +down 7 +down 7 +forward 6 +forward 5 +up 4 +down 6 +down 9 +forward 1 +down 3 +forward 8 +down 4 +forward 3 +down 7 +forward 3 +forward 3 +forward 1 +forward 5 +down 7 +forward 4 +up 5 +down 9 +down 3 +down 6 +down 6 +forward 1 +down 2 +forward 8 +forward 5 +forward 9 +up 2 +forward 5 +down 1 +up 2 +forward 7 +down 9 +down 2 +up 9 +down 6 +forward 4 +down 8 +forward 4 +down 7 +down 6 +up 7 +up 3 +forward 6 +forward 7 +down 4 +down 6 +up 1 +forward 6 +down 6 +forward 5 +forward 9 +forward 5 +forward 7 +down 3 +down 9 +forward 7 +forward 6 +down 2 +down 9 +down 8 +down 5 +forward 3 +up 5 +down 4 +forward 5 +down 8 +forward 8 +up 3 +down 5 +up 8 +down 5 +down 1 +down 3 +down 1 +down 8 +up 9 +forward 1 +forward 5 +forward 9 +forward 9 +down 6 +forward 3 +up 6 +up 2 +down 6 +forward 4 +down 7 +up 1 +up 3 +down 3 +up 3 +up 1 +down 9 +down 2 +up 6 +down 6 +forward 8 +forward 3 +forward 1 +up 9 +down 2 +forward 6 +down 1 +forward 5 +up 8 +down 2 +forward 7 +forward 2 +down 1 +forward 6 +up 7 +down 7 +forward 3 +down 8 +down 6 +forward 3 +down 9 +down 7 +forward 5 +forward 5 +down 1 +forward 3 +up 8 +forward 8 +down 3 +up 4 +up 6 +up 5 +up 6 +down 8 +up 9 +down 6 +up 5 +down 6 +forward 4 +down 7 +forward 5 +forward 2 +down 1 +down 5 +forward 4 +forward 4 +down 9 +forward 6 +down 4 +forward 1 +forward 3 +down 5 +forward 2 +up 3 +forward 6 +down 2 +up 5 +down 6 +down 6 +forward 3 +up 5 +forward 4 +forward 3 +forward 6 +forward 5 +forward 7 +down 5 +down 8 +up 6 +up 3 +down 1 +forward 6 +down 4 +forward 7 +up 3 +forward 9 +down 3 +forward 2 +forward 8 +down 9 +down 2 +up 8 +down 3 +down 6 +forward 8 +forward 6 +up 5 +forward 9 +forward 7 +down 9 +forward 5 +down 1 +up 5 +down 4 +up 2 +forward 1 +up 9 +forward 1 +forward 2 +down 1 +forward 5 +forward 8 +down 8 +up 3 +down 4 +forward 6 +down 9 +down 9 +forward 7 +forward 3 +down 3 +down 7 +forward 8 +forward 1 +forward 6 +down 8 +up 2 +up 6 +forward 2 +down 6 +up 3 +down 5 +forward 9 +down 6 +down 9 +down 8 +down 5 +forward 3 +forward 3 +down 1 +forward 7 +forward 5 +down 3 +down 1 +down 9 +forward 4 +up 9 +up 8 +down 2 +down 1 +forward 6 +forward 5 +up 8 +up 4 +down 7 +forward 9 +forward 9 +up 4 +forward 3 +down 6 +forward 1 +down 2 +forward 2 +down 6 +forward 4 +down 2 +forward 9 +down 3 +down 4 +forward 9 +forward 4 +forward 7 +forward 8 +down 7 +up 5 +forward 3 +forward 1 +down 3 +forward 2 +forward 5 +forward 5 +down 5 +down 5 +down 6 +forward 3 +up 4 +forward 6 +down 1 +down 3 +down 5 +down 6 +up 1 +forward 3 +forward 2 +up 9 +forward 6 +up 1 +down 9 +up 3 +down 4 +forward 1 +down 4 +forward 3 +forward 5 +down 2 +forward 5 +down 5 +down 9 +down 8 +forward 5 +forward 7 +down 1 +forward 2 +up 5 +up 9 +forward 4 +up 7 +down 9 +forward 9 +up 9 +down 5 +up 8 +forward 1 +forward 8 +up 9 +down 1 +down 3 +down 6 +forward 8 +forward 9 +down 7 +forward 8 +down 9 +forward 7 +up 6 +forward 7 +forward 3 +forward 5 +down 4 +forward 3 +up 8 +up 3 +down 7 +up 3 +forward 6 +down 7 +forward 5 +down 5 +forward 8 +down 4 +up 1 +up 1 +forward 9 +forward 8 +up 3 +down 5 +forward 8 +forward 6 +forward 9 +forward 5 +forward 3 +down 5 +forward 4 +down 6 +forward 9 +up 6 +down 3 +down 8 +down 5 +down 8 +down 4 +down 5 +down 2 +down 4 +down 8 +down 2 +down 7 +down 9 +down 5 +up 3 +down 1 +forward 6 +forward 4 +forward 1 +forward 6 +forward 4 +down 1 +forward 3 +forward 1 +forward 1 +down 5 +down 4 +up 6 +forward 2 +up 6 +down 8 +forward 1 +up 7 +down 4 +up 2 +down 3 +forward 6 +forward 2 +up 5 +forward 7 +down 8 +forward 6 +up 6 +down 9 +down 6 +down 5 +down 8 +down 5 +down 8 +down 2 +down 7 +up 6 +up 9 +down 3 +down 5 +forward 3 +up 7 +down 7 +up 8 +forward 4 +forward 2 +down 1 +up 1 +up 6 +up 2 +down 1 +down 6 +down 1 +forward 4 +down 6 +forward 9 +forward 2 +forward 1 +forward 7 +forward 5 diff --git a/src/day2.rs b/src/day2.rs new file mode 100644 index 0000000..5b776e9 --- /dev/null +++ b/src/day2.rs @@ -0,0 +1,53 @@ +pub fn day2() { + // let input = r#" + // forward 5 + // down 5 + // forward 8 + // up 3 + // down 8 + // forward 2 + // "#; + let input = include_str!("../input/day2.txt"); + + let mut x = 0; + let mut d = 0; + for line in input.trim().lines() { + let parts: Vec<&str> = line.trim().split(' ').collect(); + let amount: i32 = parts.get(1).unwrap().parse().unwrap(); + match parts.get(0).unwrap() { + &"forward" => { + x += amount; + } + &"down" => { + d += amount; + } + &"up" => { + d -= amount; + } + _ => panic!(), + } + } + println!("{}", x * d); + + x = 0; + d = 0; + let mut aim = 0; + for line in input.trim().lines() { + let parts: Vec<&str> = line.trim().split(' ').collect(); + let amount: i32 = parts.get(1).unwrap().parse().unwrap(); + match parts.get(0).unwrap() { + &"forward" => { + x += amount; + d += aim * amount; + } + &"down" => { + aim += amount; + } + &"up" => { + aim -= amount; + } + _ => panic!(), + } + } + println!("{}", x * d); +} diff --git a/src/main.rs b/src/main.rs index 8b806eb..ce49bb9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,8 @@ +#![allow(dead_code)] + mod day1; +mod day2; fn main() { - day1::day1(); + day2::day2(); }