From c191f67b952334bc7868c9fe4cd3ae505b7ddc8d Mon Sep 17 00:00:00 2001 From: Max Hohlfeld Date: Sat, 10 Dec 2022 18:15:36 +0100 Subject: [PATCH] aoc2022 day 10 part one --- src/aoc2022/day10/input.txt | 139 ++++++++++++++++++++++++++++++++++++ src/aoc2022/day10/mod.rs | 33 +++++++++ src/aoc2022/mod.rs | 1 + src/main.rs | 3 + 4 files changed, 176 insertions(+) create mode 100644 src/aoc2022/day10/input.txt create mode 100644 src/aoc2022/day10/mod.rs diff --git a/src/aoc2022/day10/input.txt b/src/aoc2022/day10/input.txt new file mode 100644 index 0000000..3773363 --- /dev/null +++ b/src/aoc2022/day10/input.txt @@ -0,0 +1,139 @@ +noop +addx 24 +addx -19 +noop +noop +noop +addx 5 +noop +addx 1 +addx 5 +addx -1 +addx 5 +addx 1 +addx 14 +addx -9 +addx -1 +addx 5 +noop +addx 2 +addx -20 +addx 24 +addx -36 +addx -2 +noop +addx 3 +addx 2 +addx 5 +addx 21 +addx -16 +noop +addx 2 +addx 15 +addx -14 +addx 2 +addx 5 +addx 2 +addx -4 +addx 5 +addx -8 +addx 15 +addx 2 +addx 3 +addx -2 +addx -38 +noop +addx 3 +addx 4 +noop +addx 7 +noop +noop +addx -2 +addx 5 +addx -16 +addx 21 +noop +addx -10 +addx 11 +addx 2 +addx 5 +addx 4 +noop +noop +addx -6 +addx 7 +noop +addx 3 +addx -36 +noop +addx 5 +noop +addx 20 +addx -19 +addx 5 +addx 4 +noop +addx -2 +addx 3 +noop +addx 4 +noop +addx -1 +addx 5 +addx 3 +addx -28 +addx 30 +noop +addx 6 +noop +noop +addx 1 +addx -38 +addx 40 +addx -33 +addx 20 +addx -19 +addx 2 +noop +addx 28 +addx -23 +addx 5 +addx 2 +addx 2 +addx 3 +addx -2 +addx 5 +addx 2 +addx -7 +addx 12 +addx -2 +noop +addx 3 +addx -38 +noop +addx 24 +addx -17 +noop +addx 5 +noop +noop +addx 1 +addx -8 +addx 13 +noop +noop +addx 2 +addx 5 +addx 2 +addx 6 +addx -5 +addx 4 +noop +addx 1 +addx 2 +noop +addx 3 +noop +noop + diff --git a/src/aoc2022/day10/mod.rs b/src/aoc2022/day10/mod.rs new file mode 100644 index 0000000..12abef1 --- /dev/null +++ b/src/aoc2022/day10/mod.rs @@ -0,0 +1,33 @@ +pub fn task_one(input: &str) -> String { + let mut x = 1; + let mut cycles: Vec = Vec::new(); + + for line in input.trim().lines() { + let mut split = line.split_whitespace(); + + match split.next().unwrap() { + "noop" => { + cycles.push(x); + } + "addx" => { + cycles.push(x); + cycles.push(x); + x += split.next().unwrap().parse::().unwrap(); + } + _ => panic!(), + } + } + + let interesing: Vec = vec![20, 60, 100, 140, 180, 220]; + let mut sum = 0; + + for i in interesing { + sum += cycles[i - 1].checked_mul(i as isize).unwrap(); + } + + sum.to_string() +} + +pub fn task_two(input: &str) -> String { + String::new() +} diff --git a/src/aoc2022/mod.rs b/src/aoc2022/mod.rs index a8fc1a9..aaf8128 100644 --- a/src/aoc2022/mod.rs +++ b/src/aoc2022/mod.rs @@ -7,3 +7,4 @@ pub mod day06; pub mod day07; pub mod day08; pub mod day09; +pub mod day10; diff --git a/src/main.rs b/src/main.rs index 188eebd..53ce486 100644 --- a/src/main.rs +++ b/src/main.rs @@ -63,4 +63,7 @@ fn main() { puzzle = Puzzle { day: 9, year: 2022, task_one: aoc2022::day09::task_one, task_two: aoc2022::day09::task_two }; puzzle.solve_and_print(); + + puzzle = Puzzle { day: 10, year: 2022, task_one: aoc2022::day10::task_one, task_two: aoc2022::day10::task_two }; + puzzle.solve_and_print(); }