my solutions to advent of code
aoc advent-of-code

part 2 day 3 gleam 2025

aylac.top 44efb0ac 65fd30cb

verified
Changed files
+45 -12
2025
3
gleam
+45 -12
2025/3/gleam/src/main.gleam
··· 24 list.range(2, 1) 25 |> list.fold(#(0, bank), fn(acc, i) { 26 let #(number, bank) = acc 27 - let bank_find = case i { 28 - 2 -> 29 - bank 30 - |> list.reverse 31 - |> list.drop(1) 32 - |> list.reverse 33 - _ -> bank 34 - } 35 let max = 36 bank_find 37 |> list.max(int.compare) ··· 45 #( 46 number 47 + max 48 - * case i { 49 - 2 -> 10 50 - _ -> 1 51 - }, 52 list.drop(bank, max_loc + 1), 53 ) 54 })
··· 24 list.range(2, 1) 25 |> list.fold(#(0, bank), fn(acc, i) { 26 let #(number, bank) = acc 27 + let bank_find = 28 + bank 29 + |> list.reverse 30 + |> list.drop(i - 1) 31 + |> list.reverse 32 + 33 + let max = 34 + bank_find 35 + |> list.max(int.compare) 36 + |> result.unwrap(list.last(bank) |> result.unwrap(0)) 37 + 38 + let max_loc = 39 + bank 40 + |> list.index_map(fn(n, i) { #(n, i) }) 41 + |> list.key_find(max) 42 + |> result.unwrap(0) 43 + #( 44 + number 45 + + max 46 + * float.round( 47 + int.power(10, int.to_float(i - 1)) |> result.unwrap(0.0), 48 + ), 49 + list.drop(bank, max_loc + 1), 50 + ) 51 + }) 52 + acc + n 53 + }) 54 + |> int.to_string 55 + |> io.println 56 + 57 + input 58 + |> list.fold(0, fn(acc, bank) { 59 + let #(n, _) = 60 + list.range(12, 1) 61 + |> list.fold(#(0, bank), fn(acc, i) { 62 + let #(number, bank) = acc 63 + let bank_find = 64 + bank 65 + |> list.reverse 66 + |> list.drop(i - 1) 67 + |> list.reverse 68 + 69 let max = 70 bank_find 71 |> list.max(int.compare) ··· 79 #( 80 number 81 + max 82 + * float.round( 83 + int.power(10, int.to_float(i - 1)) |> result.unwrap(0.0), 84 + ), 85 list.drop(bank, max_loc + 1), 86 ) 87 })