From 61ec27be506c76f73eda8fdb216b82d8fcbf6ff4 Mon Sep 17 00:00:00 2001 From: Aleteoryx Date: Sun, 1 Dec 2024 04:40:41 -0500 Subject: 2024.1 --- 2024/tcl/01.tcl | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 2024/tcl/01.tcl (limited to '2024/tcl/01.tcl') 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" -- cgit v1.2.3-70-g09d2