From 5426357cd771e95ba948a32515885dd2f4877a30 Mon Sep 17 00:00:00 2001 From: David Ashby Date: Wed, 7 Dec 2022 22:16:15 -0500 Subject: [PATCH] simplify rust code somewhat --- 07/main.rs | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/07/main.rs b/07/main.rs index 13137af..02d8178 100644 --- a/07/main.rs +++ b/07/main.rs @@ -42,20 +42,17 @@ fn part_one() { if f < 100000 { sum += f } - let mut p = stack.pop().unwrap(); - p += f; - stack.push(p); + let last_on_stack = stack.len() - 1; + stack[last_on_stack] += f; } s if s.starts_with("$ cd ") => { stack.push(0); } s => { // otherwise it must be a file - let mut f = stack.pop().unwrap(); let mut sp = s.split(" "); - let size = sp.next().unwrap().parse::().unwrap(); - f += size; - stack.push(f); + let last_on_stack = stack.len() - 1; + stack[last_on_stack] += sp.next().unwrap().parse::().unwrap(); } }; } @@ -80,20 +77,17 @@ fn part_two() { if f > space_to_free && f < to_delete { to_delete = f } - let mut p = stack.pop().unwrap(); - p += f; - stack.push(p); + let last_on_stack = stack.len() - 1; + stack[last_on_stack] += f; } s if s.starts_with("$ cd ") => { stack.push(0); } s => { // otherwise it must be a file - let mut f = stack.pop().unwrap(); let mut sp = s.split(" "); - let size = sp.next().unwrap().parse::().unwrap(); - f += size; - stack.push(f); + let last_on_stack = stack.len() - 1; + stack[last_on_stack] += sp.next().unwrap().parse::().unwrap(); } }; }