diff options
Diffstat (limited to '2024/tcl/01.tcl')
-rwxr-xr-x | 2024/tcl/01.tcl | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/2024/tcl/01.tcl b/2024/tcl/01.tcl new file mode 100755 index 0000000..462a7a9 --- /dev/null +++ b/2024/tcl/01.tcl @@ -0,0 +1,33 @@ +#!/bin/env tclsh + +source lib.tcl +setup 1 + +puts {Part 1: Find the sum of distances between pairs of numbers with the same ordinal in each list.} + +while {[gets $input line] != -1} { + lassign [regexp -inline -all {\d+} $line] ln rn + + lappend left_nums $ln + lappend right_nums $rn + + dict incr right_num_counts $rn +} + +close $input + +set left_nums [lsort -integer $left_nums] +set right_nums [lsort -integer $right_nums] + +foreach ln $left_nums rn $right_nums { + incr total1 [expr {abs($ln - $rn)}] + + if [dict exists $right_num_counts $ln] { + incr total2 [expr {$ln * [dict get $right_num_counts $ln]}] + } +} + +puts "Sum of distances: $total1" +puts "" +puts {Part 2: Find the "Similarity Score" of the lists.} +puts "Similarity Score: $total2" |