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

simplify

aylac.top 04e0b64a 44efb0ac

verified
Changed files
+18 -46
2025
3
gleam
+18 -46
2025/3/gleam/src/main.gleam
···
import gleam/string
import simplifile as file
-
pub fn main() {
-
let assert Ok(input) = file.read(from: "../input.txt")
-
as "Input file not found"
-
let input =
-
input
-
|> string.trim
-
|> string.split("\n")
-
|> list.map(fn(bank) {
-
string.to_graphemes(bank)
-
|> list.map(fn(s) { int.parse(s) |> result.unwrap(0) })
-
})
-
+
pub fn do(input, digits) {
input
|> list.fold(0, fn(acc, bank) {
let #(n, _) =
-
list.range(2, 1)
+
list.range(digits, 1)
|> list.fold(#(0, bank), fn(acc, i) {
let #(number, bank) = acc
let bank_find =
···
})
acc + n
})
-
|> int.to_string
-
|> io.println
+
}
-
input
-
|> list.fold(0, fn(acc, bank) {
-
let #(n, _) =
-
list.range(12, 1)
-
|> list.fold(#(0, bank), fn(acc, i) {
-
let #(number, bank) = acc
-
let bank_find =
-
bank
-
|> list.reverse
-
|> list.drop(i - 1)
-
|> list.reverse
+
pub fn main() {
+
let assert Ok(input) = file.read(from: "../input.txt")
+
as "Input file not found"
+
let input =
+
input
+
|> string.trim
+
|> string.split("\n")
+
|> list.map(fn(bank) {
+
string.to_graphemes(bank)
+
|> list.map(fn(s) { int.parse(s) |> result.unwrap(0) })
+
})
-
let max =
-
bank_find
-
|> list.max(int.compare)
-
|> result.unwrap(list.last(bank) |> result.unwrap(0))
+
do(input, 2)
+
|> int.to_string
+
|> io.println
-
let max_loc =
-
bank
-
|> list.index_map(fn(n, i) { #(n, i) })
-
|> list.key_find(max)
-
|> result.unwrap(0)
-
#(
-
number
-
+ max
-
* float.round(
-
int.power(10, int.to_float(i - 1)) |> result.unwrap(0.0),
-
),
-
list.drop(bank, max_loc + 1),
-
)
-
})
-
acc + n
-
})
+
do(input, 12)
|> int.to_string
|> io.println
}