diff options
author | Aleteoryx <alyx@aleteoryx.me> | 2024-12-03 00:12:57 -0500 |
---|---|---|
committer | Aleteoryx <alyx@aleteoryx.me> | 2024-12-03 00:15:25 -0500 |
commit | 735b9fdf4535be1d721c59077e66def8b115d2ae (patch) | |
tree | 7b4dd4abf38151b247eb6c0004cf14aeb658ae96 /2024/tcl/03.tcl | |
parent | 656179e07857277c2e63789157e7b948f2c80114 (diff) | |
download | adventofcode-735b9fdf4535be1d721c59077e66def8b115d2ae.tar.gz adventofcode-735b9fdf4535be1d721c59077e66def8b115d2ae.tar.bz2 adventofcode-735b9fdf4535be1d721c59077e66def8b115d2ae.zip |
2024.3
Diffstat (limited to '2024/tcl/03.tcl')
-rwxr-xr-x | 2024/tcl/03.tcl | 36 |
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" |