From d09dcfb2b4b83c7e260670fa2435b2b4b30e27a7 Mon Sep 17 00:00:00 2001 From: kplaczek Date: Fri, 3 Dec 2021 21:32:44 +0100 Subject: [PATCH] Readme --- 03/part1.php | 18 +++++------------- 03/part2.php | 18 +++++++++++++----- README.md | 14 ++++++++++++++ 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/03/part1.php b/03/part1.php index ada3330..6fcc241 100644 --- a/03/part1.php +++ b/03/part1.php @@ -2,18 +2,10 @@ $input = file('input', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $input = array_map(fn($line) => str_split($line), $input); - -$o2 = $co2 = $input; - +$gamma = $epsilon = []; for ($i = 0; $i < count($input[0]); $i++) { - if (count($o2) > 1) { - $bit = (int)(array_sum($column = array_column($o2, $i)) >= ceil(count($column) / 2)); - $o2 = array_filter($o2, fn($line) => $line[$i] == $bit); - } - - if (count($co2) > 1) { - $bit = (int) (array_sum($column = array_column($co2, $i)) >= ceil(count($column) / 2)); - $co2 = array_filter($co2, fn ($line) => $line[$i] != $bit); - } + $bit = (int) (array_sum($column = array_column($input, $i)) >= ceil(count($column) / 2)); + $gamma[] = $bit; + $epsilon[] = ~$bit & 1; } -echo bindec(implode('', reset($co2))) * bindec(implode('', reset($o2))); \ No newline at end of file +echo bindec(implode('', $gamma)) * bindec(implode('', $epsilon)).PHP_EOL; //3813416 diff --git a/03/part2.php b/03/part2.php index d40b7bb..1fb83ff 100644 --- a/03/part2.php +++ b/03/part2.php @@ -2,10 +2,18 @@ $input = file('input', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $input = array_map(fn($line) => str_split($line), $input); -$gamma = $epsilon = []; + +$o2 = $co2 = $input; + for ($i = 0; $i < count($input[0]); $i++) { - $bit = (int) (array_sum($column = array_column($input, $i)) >= ceil(count($column) / 2)); - $gamma[] = $bit; - $epsilon[] = ~$bit & 1; + if (count($o2) > 1) { + $bit = (int)(array_sum($column = array_column($o2, $i)) >= ceil(count($column) / 2)); + $o2 = array_filter($o2, fn($line) => $line[$i] == $bit); + } + + if (count($co2) > 1) { + $bit = (int) (array_sum($column = array_column($co2, $i)) >= ceil(count($column) / 2)); + $co2 = array_filter($co2, fn ($line) => $line[$i] != $bit); + } } -echo bindec(implode('', $gamma)) * bindec(implode('', $epsilon)).PHP_EOL; +echo bindec(implode('', reset($co2))) * bindec(implode('', reset($o2))); //2990784 \ No newline at end of file diff --git a/README.md b/README.md index e8f4ea2..f00d616 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,16 @@ # advent_of_code_2021 +### DAY 1 + +- [part1](01/part1.php) +- [part2](01/part2.php) + +### DAY 2 + +- [part1](02/part1.php) +- [part2](02/part2.php) + +### DAY 3 + +- [part1](03/part1.php) +- [part2](03/part2.php) \ No newline at end of file