From 91bbcf080c94463400d515deeb14a9de721417b3 Mon Sep 17 00:00:00 2001 From: HeNine <> Date: Mon, 6 Dec 2021 06:57:14 +0100 Subject: [PATCH] Day V --- day06/Project.toml | 4 ++++ day06/data/case00.txt | 1 + day06/data/case01.txt | 1 + day06/src/day06.jl | 53 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 day06/Project.toml create mode 100644 day06/data/case00.txt create mode 100644 day06/data/case01.txt create mode 100644 day06/src/day06.jl diff --git a/day06/Project.toml b/day06/Project.toml new file mode 100644 index 0000000..6246e2e --- /dev/null +++ b/day06/Project.toml @@ -0,0 +1,4 @@ +name = "day06" +uuid = "000671ab-97c2-4b62-8378-0d7f78995e06" +authors = ["HeNine "] +version = "0.1.0" diff --git a/day06/data/case00.txt b/day06/data/case00.txt new file mode 100644 index 0000000..a7af2b1 --- /dev/null +++ b/day06/data/case00.txt @@ -0,0 +1 @@ +3,4,3,1,2 \ No newline at end of file diff --git a/day06/data/case01.txt b/day06/data/case01.txt new file mode 100644 index 0000000..47751d2 --- /dev/null +++ b/day06/data/case01.txt @@ -0,0 +1 @@ +1,4,2,4,5,3,5,2,2,5,2,1,2,4,5,2,3,5,4,3,3,1,2,3,2,1,4,4,2,1,1,4,1,4,4,4,1,4,2,4,3,3,3,3,1,1,5,4,2,5,2,4,2,2,3,1,2,5,2,4,1,5,3,5,1,4,5,3,1,4,5,2,4,5,3,1,2,5,1,2,2,1,5,5,1,1,1,4,2,5,4,3,3,1,3,4,1,1,2,2,2,5,4,4,3,2,1,1,1,1,2,5,1,3,2,1,4,4,2,1,4,5,2,5,5,3,3,1,3,2,2,3,4,1,3,1,5,4,2,5,2,4,1,5,1,4,5,1,2,4,4,1,4,1,4,4,2,2,5,4,1,3,1,3,3,1,5,1,5,5,5,1,3,1,2,1,4,5,4,4,1,3,3,1,4,1,2,1,3,2,1,5,5,3,3,1,3,5,1,5,3,5,3,1,1,1,1,4,4,3,5,5,1,1,2,2,5,5,3,2,5,2,3,4,4,1,1,2,2,4,3,5,5,1,1,5,4,3,1,3,1,2,4,4,4,4,1,4,3,4,1,3,5,5,5,1,3,5,4,3,1,3,5,4,4,3,4,2,1,1,3,1,1,2,4,1,4,1,1,1,5,5,1,3,4,1,1,5,4,4,2,2,1,3,4,4,2,2,2,3 \ No newline at end of file diff --git a/day06/src/day06.jl b/day06/src/day06.jl new file mode 100644 index 0000000..7594653 --- /dev/null +++ b/day06/src/day06.jl @@ -0,0 +1,53 @@ +## + +function task0(file) + fish = readline(file) |> + x -> split(x, ",") .|> + x -> parse(Int, x) + + for generation = 1:80 + fish = [🐟 == 0 ? [6, 8] : [🐟 - 1] for 🐟 ∈ fish] |> x -> vcat(x...) + end + + length(fish) +end + +## + +println("Day 06 – Task 1 – Case 0") +open(task0, "day06\\data\\case00.txt") |> display +@assert open(task0, "day06\\data\\case00.txt") == 5934 + +println("Day 06 – Task 1 – Case 1") +open(task0, "day06\\data\\case01.txt") |> println +@assert open(task0, "day06\\data\\case01.txt") == 349549 + +## + +function task1(file) + fish = readline(file) |> + x -> split(x, ",") .|> + x -> parse(Int, x) + + 🐠 = zeros(Int, 9) + + for 🐟 ∈ fish + 🐠[🐟+1] += 1 + end + + for generation = 1:256 + 🐠 = [🐠[2:7]; 🐠[1] + 🐠[8]; 🐠[9]; 🐠[1]] + end + + sum(🐠) +end + +## + +println("Day 06 – Task 2 – Case 0") +open(task1, "day06\\data\\case00.txt") |> display +@assert open(task1, "day06\\data\\case00.txt") == 26984457539 + +println("Day 06 – Task 2 – Case 1") +open(task1, "day06\\data\\case01.txt") |> println +@assert open(task1, "day06\\data\\case01.txt") == 1589590444365