Mercurial > lbo > hg > aoc22
changeset 22:1ed3228c05ed
day 13 part 2
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Thu, 15 Dec 2022 20:59:59 +0100 |
parents | 527acdd2d097 |
children | 3c02202f3b8e |
files | 13/13.jl |
diffstat | 1 files changed, 15 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/13/13.jl Thu Dec 15 20:53:54 2022 +0100 +++ b/13/13.jl Thu Dec 15 20:59:59 2022 +0100 @@ -39,6 +39,10 @@ end end +function sort_lists!(e::Vector{Element}) + sort!(e; lt=(a, b) -> compare_lists(a, b) < 0) +end + function parse_list(s::String)::Element r = parse_one(s, IOL); any_to_elem(r[1]) @@ -47,18 +51,29 @@ function run_file(f::String) open(f; read=true) do fh v = Int[]; + m1, m2 = parse_list("[[2]]"), parse_list("[[6]]"); + lists = Element[m1, m2]; i = 1; while !eof(fh) l1 = readline(fh); l2 = readline(fh); _sp = readline(fh); a, b = parse_list(l1), parse_list(l2); + push!(lists, a, b); if compare_lists(a, b) < 0 push!(v, i); end i += 1 end @show (v, sum(v)) + + sort_lists!(lists); + for (i, l) in enumerate(lists) + println(i, " ", l); + end + + i, j = findfirst((==)(m1), lists), findfirst((==)(m2), lists); + @show (i, j, i*j); end end @@ -66,4 +81,3 @@ @time run_file("13/test_input.txt"); println("PART 1 INPUT"); @time run_file("13/input.txt"); -@time run_file("13/input.txt");