From cfdab32f3f86e6557f8e156d4c0f0c5b1d81d4b5 Mon Sep 17 00:00:00 2001 From: Andrew Ekstedt Date: Wed, 6 Dec 2023 03:40:44 +0000 Subject: [PATCH] day 1 part 2 tcl solution --- day01/sol.tcl | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 day01/sol.tcl diff --git a/day01/sol.tcl b/day01/sol.tcl new file mode 100755 index 0000000..db65f30 --- /dev/null +++ b/day01/sol.tcl @@ -0,0 +1,28 @@ +#!/usr/bin/env tclsh8.6 + +proc tonum {x} { + if {[string is digit $x]} { + return $x + } + return [expr {1+[lsearch {one two three four five six seven eight nine} $x]}] +} + +set in stdin +set part2 0 +while {[gets $in line] >= 0} { + set chars [split $line ""] + set digits [list] + for {set i 0} {$i < [string length $line]} {incr i} { + if {[regexp -start $i {\A([0-9]|one|two|three|four|five|six|seven|eight|nine)} $line x]} { + lappend digits [tonum $x] + } + } + if {[string length $digits] >= 1} { + set n "[lindex $digits 0][lindex $digits end]" + incr part2 $n + } else { set n "" } + puts "\"$line\": $digits => $n" +} + +puts "-" +puts $part2