summaryrefslogtreecommitdiffstats
path: root/2024/tcl/03.tcl
diff options
context:
space:
mode:
authorAleteoryx <alyx@aleteoryx.me>2024-12-03 00:12:57 -0500
committerAleteoryx <alyx@aleteoryx.me>2024-12-03 00:15:25 -0500
commit735b9fdf4535be1d721c59077e66def8b115d2ae (patch)
tree7b4dd4abf38151b247eb6c0004cf14aeb658ae96 /2024/tcl/03.tcl
parent656179e07857277c2e63789157e7b948f2c80114 (diff)
downloadadventofcode-735b9fdf4535be1d721c59077e66def8b115d2ae.tar.gz
adventofcode-735b9fdf4535be1d721c59077e66def8b115d2ae.tar.bz2
adventofcode-735b9fdf4535be1d721c59077e66def8b115d2ae.zip
2024.3
Diffstat (limited to '2024/tcl/03.tcl')
-rwxr-xr-x2024/tcl/03.tcl36
1 files changed, 36 insertions, 0 deletions
diff --git a/2024/tcl/03.tcl b/2024/tcl/03.tcl
new file mode 100755
index 0000000..d1ff7c9
--- /dev/null
+++ b/2024/tcl/03.tcl
@@ -0,0 +1,36 @@
+#!/bin/env tclsh
+
+source lib.tcl
+setup 3
+
+puts {Part 1: Sum of mul(x,y) calls...}
+
+set mulsum 0
+set mulsum_cf 0
+set cf 1
+foreach {inst a b} [regexp -all -inline {do\(\)|don't\(\)|mul\((\d+),(\d+)\)} [read $input]] {
+ switch -- [string range $inst 0 2] {
+ mul {
+ set inc [expr {$a * $b}]
+ incr mulsum $inc
+ if $cf {
+ incr mulsum_cf $inc
+ }
+ }
+ do( {
+ set cf 1
+ }
+ don {
+ set cf 0
+ }
+ }
+}
+
+close $input
+
+puts "Sum: $mulsum"
+
+puts ""
+puts {Part 2: ...with control flow.}
+
+puts "Sum: $mulsum_cf"