File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -26,6 +26,8 @@ main :: proc() {
26
26
27
27
part2_result := part2 (x[:], y[:])
28
28
fmt.println (part2_result) // 20520794
29
+
30
+ fmt.println (calculate_similarity_score (x[:], y[:])) // 20520794
29
31
}
30
32
31
33
part1 :: proc (x, y: []int ) -> int {
@@ -62,3 +64,26 @@ part2 :: proc(x, y: []int) -> int {
62
64
63
65
return result
64
66
}
67
+
68
+ // solution by LLM part 2
69
+
70
+ // Calculate similarity score
71
+ calculate_similarity_score :: proc (left_list, right_list: []int ) -> int {
72
+ // Count frequencies of numbers in the right list
73
+ frequencies := make (map [int ]int )
74
+ defer delete (frequencies)
75
+
76
+ for num in right_list {
77
+ frequencies[num] += 1
78
+ }
79
+
80
+ // Calculate similarity score
81
+ total_score := 0
82
+ for num in left_list {
83
+ // Multiply number by its frequency (0 if not found)
84
+ frequency := frequencies[num] or_else 0
85
+ total_score += num * frequency
86
+ }
87
+
88
+ return total_score
89
+ }
You can’t perform that action at this time.
0 commit comments