Day ll
parent
d85c09244c
commit
e26833939c
@ -0,0 +1,4 @@
|
||||
name = "day11"
|
||||
uuid = "eeb063b9-3c05-4ffd-8498-60dcd43cb32f"
|
||||
authors = ["HeNine "]
|
||||
version = "0.1.0"
|
@ -0,0 +1,10 @@
|
||||
5483143223
|
||||
2745854711
|
||||
5264556173
|
||||
6141336146
|
||||
6357385478
|
||||
4167524645
|
||||
2176841721
|
||||
6882881134
|
||||
4846848554
|
||||
5283751526
|
@ -0,0 +1,10 @@
|
||||
7777838353
|
||||
2217272478
|
||||
3355318645
|
||||
2242618113
|
||||
7182468666
|
||||
5441641111
|
||||
4773862364
|
||||
5717125521
|
||||
7542127721
|
||||
4576678341
|
@ -0,0 +1,83 @@
|
||||
include("../../AoC2021.jl")
|
||||
|
||||
##
|
||||
|
||||
function parsefile(file)
|
||||
(eachline(file) .|> Base.Fix2(split, "") .|>
|
||||
(x -> parse.(Int, x)) .|>
|
||||
permutedims) |> x -> vcat(x...)
|
||||
end
|
||||
|
||||
function advancegen(mappe)
|
||||
mappe .+= 1
|
||||
|
||||
reset = []
|
||||
|
||||
topop = findall(mappe .> 9)
|
||||
reset = copy(topop)
|
||||
|
||||
while length(topop) > 0
|
||||
|
||||
o = pop!(topop)
|
||||
|
||||
for ox ∈ -1:1, oy ∈ -1:1
|
||||
mappe[o+CartesianIndex(oy, ox)] += 1
|
||||
if mappe[o+CartesianIndex(oy, ox)] > 9 && o + CartesianIndex(oy, ox) ∉ reset
|
||||
push!(topop, o + CartesianIndex(oy, ox))
|
||||
push!(reset, o + CartesianIndex(oy, ox))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
mappe[reset] .= 0
|
||||
mappe[1, :] .= -9
|
||||
mappe[end, :] .= -9
|
||||
mappe[:, 1] .= -9
|
||||
mappe[:, end] .= -9
|
||||
|
||||
mappe
|
||||
end
|
||||
|
||||
##
|
||||
|
||||
function task0(file)
|
||||
raw_mappe = parsefile(file)::Matrix{Int}
|
||||
mappe = fill(-9, size(raw_mappe) .+ 2)
|
||||
mappe[2:(end-1), 2:(end-1)] = raw_mappe
|
||||
|
||||
popped = 0
|
||||
|
||||
for gen = 1:100
|
||||
mappe = advancegen(mappe)
|
||||
popped += sum(mappe .== 0)
|
||||
end
|
||||
popped
|
||||
end
|
||||
|
||||
##
|
||||
|
||||
verify(11, 1, 0, 1656)
|
||||
verify(11, 1, 1, 1721)
|
||||
|
||||
##
|
||||
|
||||
function task1(file)
|
||||
|
||||
raw_mappe = parsefile(file)::Matrix{Int}
|
||||
mappe = fill(-9, size(raw_mappe) .+ 2)
|
||||
mappe[2:(end-1), 2:(end-1)] = raw_mappe
|
||||
|
||||
gen = 0
|
||||
|
||||
while !all(mappe[2:(end-1), 2:(end-1)] .== 0)
|
||||
gen += 1
|
||||
mappe = advancegen(mappe)
|
||||
end
|
||||
|
||||
gen
|
||||
end
|
||||
|
||||
##
|
||||
|
||||
verify(11, 2, 0, 195)
|
||||
verify(11, 2, 1, 298)
|
Loading…
Reference in New Issue