changeset 6:dea8d8f60e25

Finish day 05 part 01
author Lewin Bormann <lbo@spheniscida.de>
date Wed, 07 Dec 2022 22:14:02 +0100
parents dc901991442c
children 6344dda06b86
files 05/05.jl
diffstat 1 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/05/05.jl	Tue Dec 06 23:08:24 2022 +0100
+++ b/05/05.jl	Wed Dec 07 22:14:02 2022 +0100
@@ -64,8 +64,16 @@
 
 function act(init::Crates, instr::Vector{Instr})::Crates
     for i in instr
+        @assert length(init.stacks[i.from]) >= i.n
+        for j in 1:i.n
+            push!(init.stacks[i.to], pop!(init.stacks[i.from]));
+        end
+    end
+    init
+end
 
-    end
+function endresult1(c::Crates)::String
+    String([s[end] for s in c.stacks])
 end
 
 function run_05(f::String)
@@ -73,6 +81,8 @@
         ls = collect(eachline(fh));
         crates = parse_stacks(ls);
         instrs = parse_instructions(ls);
+        crates2 = act(crates, instrs);
+        println(endresult1(crates2));
     end
 end