From 037c695d30416636fd4569ee20a1699fe6ebe280 Mon Sep 17 00:00:00 2001 From: drakeerv Date: Mon, 2 Dec 2024 23:15:55 -0500 Subject: [PATCH 1/2] drakeerv. day 01 --- 2024/01/drakeerv.v | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 2024/01/drakeerv.v diff --git a/2024/01/drakeerv.v b/2024/01/drakeerv.v new file mode 100644 index 0000000..4835096 --- /dev/null +++ b/2024/01/drakeerv.v @@ -0,0 +1,43 @@ +import os +import strconv +import arrays + +fn main() { + lines := os.read_file('locations.input')!.split_into_lines() + + mut first_numbers := []u32{} + mut second_numbers := []u32{} + + for i in 0..lines.len { + numbers := lines[i].split(" ") + + first_numbers << u32(strconv.parse_uint(numbers[0], 10, 32)!) + second_numbers << u32(strconv.parse_uint(numbers[1], 10, 32)!) + } + + first_numbers.sort() + second_numbers.sort() + + mut total := 0 + + for i in 0..lines.len { + mut distance := i32(first_numbers[i] - second_numbers[i]) + if distance < 0 { + distance = -distance + } + total += distance + } + + println('part1: ${total}') + + second_map := arrays.map_of_counts(second_numbers) + + mut similarity := 0 + + for value in first_numbers { + similarity += second_map[value] * value + } + + println('part2: ${similarity}') +} + From cc25810c986bf52e3572ac170c8063cde6be2ed4 Mon Sep 17 00:00:00 2001 From: drakeerv Date: Mon, 2 Dec 2024 23:27:02 -0500 Subject: [PATCH 2/2] Fix line endings and output --- known/2024/01/drakeerv.out | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 known/2024/01/drakeerv.out diff --git a/known/2024/01/drakeerv.out b/known/2024/01/drakeerv.out new file mode 100644 index 0000000..dfebc48 --- /dev/null +++ b/known/2024/01/drakeerv.out @@ -0,0 +1,2 @@ +part1: 11 +part2: 31