From e2e9d95a16ddd5e3ea81675001e9bda13cbb83d4 Mon Sep 17 00:00:00 2001 From: Ishan Jain Date: Mon, 5 Dec 2022 12:17:31 +0530 Subject: [PATCH] Added day 5 part 2 --- src/main.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index a688421..c819d59 100644 --- a/src/main.rs +++ b/src/main.rs @@ -93,16 +93,21 @@ fn main() { fn solution(mut input: Stack) -> String { for ins in input.instructions { - for _ in 0..ins.count { - if let Some(v) = input.stacks[ins.from - 1].pop() { - input.stacks[ins.to - 1].push(v); - } + let l = input.stacks[ins.from - 1].len(); + + let crates: Vec = input.stacks[ins.from - 1] + .drain(l.saturating_sub(ins.count)..l) + .collect(); + + for c in crates { + input.stacks[ins.to - 1].push(c); } } input .stacks .into_iter() + .filter(|c| !c.is_empty()) .map(|c| *c.last().unwrap()) .collect() }