my aoc solutions
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

mend

nnuuvv c98d08b3 9323131d

+9 -35
+9 -35
src/aoc_2025/day_6.gleam
··· 2 2 import gleam/list 3 3 import gleam/option.{None, Some} 4 4 import gleam/pair 5 - import gleam/result 6 5 import gleam/string 7 6 8 7 pub type Problem { ··· 49 48 } 50 49 51 50 pub fn pt_2(input: String) { 52 - let row = 53 - input 54 - // get rows 55 - |> string.split("\n") 56 - 57 - let assert [first_row, ..] = row 58 - 59 - let grapheme_rows = 60 - row 61 - |> list.flat_map(string.to_graphemes) 62 - |> list.sized_chunk(string.length(first_row)) 51 + let rows = string.split(input, "\n") 63 52 64 - let assert Ok(operator_row) = list.last(grapheme_rows) as "invalid input" 65 - 66 - let problem_count = 67 - operator_row 68 - |> list.filter(fn(item) { item != " " }) 69 - |> list.length() 70 - 71 - // echo first_row as "first_row" 72 - 73 - let interleaved = 74 - grapheme_rows 75 - // |> echo 76 - |> list.interleave() 77 - let row_count = list.length(grapheme_rows) 78 - 79 - let problems = 80 - parse_problems_by_column(interleaved, row_count, new_problem(), []) 81 - // |> echo 82 - 83 - echo list.length(problems) as "problems" 84 - echo problem_count as "problem_count" 85 - 86 - problems 53 + rows 54 + // turn rows into graphemes 55 + |> list.map(string.to_graphemes) 56 + // interleave them to have a long list of effectively [int, operator, int, int, empty column] 57 + |> list.interleave() 58 + // parse them by column into Problem(List(Int), Operator) 59 + |> parse_problems_by_column(list.length(rows), new_problem(), []) 60 + // solve them 87 61 |> solve_problems() 88 62 } 89 63