From e3494e234a5110f94b69dbae236c3d425f5e5c7d Mon Sep 17 00:00:00 2001 From: kplaczek Date: Tue, 14 Dec 2021 23:14:43 +0100 Subject: [PATCH] 14th day both parts --- 14/part1.php | 22 ++++++++++++++++++++++ 14/part2.php | 39 +++++++++++++++++++++++++++++++++++++++ README.md | 7 ++++++- 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 14/part1.php create mode 100644 14/part2.php diff --git a/14/part1.php b/14/part1.php new file mode 100644 index 0000000..4925e76 --- /dev/null +++ b/14/part1.php @@ -0,0 +1,22 @@ + ', $item); + $pairs[$line[0]] = $line[1]; +} + + +$newTemplate = $template; +for ($j = 0; $j < 10; $j++) { + $tmpTemplate = $newTemplate; + for ($i = 0; $i < strlen($tmpTemplate) - 1; $i++) { + $window = substr($tmpTemplate, $i, 2); + $newTemplate = substr_replace($newTemplate, $pairs[$window], $i + 1 + $i, 0); + } +} +$characters = array_count_values(str_split(($newTemplate))); +sort($characters); +echo array_pop($characters) - array_shift($characters); //2549 + diff --git a/14/part2.php b/14/part2.php new file mode 100644 index 0000000..3c05a2a --- /dev/null +++ b/14/part2.php @@ -0,0 +1,39 @@ + ', $item); + $mapings[$line[0]] = $line[1]; + $initialMappings[$line[0]] = 0; +} + +for ($step = 1; $step <= 40; $step++) { + $after = $initialMappings; + foreach ($before as $pair => $count) { + $left = $pair[0] . $mapings[$pair]; + $right = $mapings[$pair] . $pair[1]; + $after[$left] += $count; + $after[$right] += $count; + } + $before = $after; +} +$letters = []; +foreach ($before as $pair => $count) { + $left = $pair[0]; + if (!isset($letters[$left])) { + $letters[$left] = 0; + } + $letters[$left] += $count; +} +$letters[substr($template, -1)] += 1; +sort($letters); + +echo array_pop($letters) - array_shift($letters); //2516901104210 diff --git a/README.md b/README.md index 12d03b0..8dc8aac 100644 --- a/README.md +++ b/README.md @@ -63,4 +63,9 @@ ### DAY 13 - Folding paper - [part1](13/part1.php) -- [part2](13/part2.php) \ No newline at end of file +- [part2](13/part2.php) + +### DAY 14 - Polymeric lanternfish + +- [part1](14/part1.php) +- [part2](14/part2.php) \ No newline at end of file