diff --git a/day_15/part_1.php b/day_15/part_1.php new file mode 100644 index 0000000..6394c21 --- /dev/null +++ b/day_15/part_1.php @@ -0,0 +1,33 @@ + $tmp_number) { + if (array_key_exists($tmp_number, $count_numbers)) { + $count_numbers[$tmp_number][] = $i; + } else { + $count_numbers[$tmp_number] = [$i]; + } +} +$number = end($tmp_numbers); +unset($tmp_numbers, $tmp_number); + +for ($i = count($starting_numbers); $i <= 29999999; $i++) { + $number = newNumber($i, $number); +} + +echo $number; + +function newNumber(int $i, int $number = 0) +{ + global $count_numbers; + if (!array_key_exists($number, $count_numbers)) { + $count_numbers[$number] = [$i]; + + return $number; + } + + $count_indexes = count($count_numbers[$number]); + + $new_number = $count_indexes === 1 ? 0 : $count_numbers[$number][$count_indexes - 1] - $count_numbers[$number][$count_indexes - 2]; + + $count_numbers[$new_number][] = $i; + + return $new_number; +}