} else { if ($direction == ">") { $newPosition = array($position[0] + 1, $position[1]); } else { $newPosition = array($position[0] - 1, $position[1]); } } } // Save the position back to the relevent person if ($robo) { $roboPosition = $newPosition; } else { $santaPosition = $newPosition; $robo = $robo + 1; } deliverPresent($newPosition); } } echo $duplicateDeliveries; function deliverPresent($position) { // 2007 throwback // Should really be using a class global $duplicateDeliveries, $houses; $x = $position[0]; $y = $position[1]; if (!isset($houses[$x][$y])) { // They haven't had a present before $houses[$x][$y] = 1; // We only care about the first duplicate delivery return $duplicateDeliveries = $duplicateDeliveries + 1;
foreach (str_split($input) as $direction) { if ($direction == "^") { $newPosition = array($position[0], $position[1] + 1); } else { if ($direction == "v") { $newPosition = array($position[0], $position[1] - 1); } else { if ($direction == ">") { $newPosition = array($position[0] + 1, $position[1]); } else { $newPosition = array($position[0] - 1, $position[1]); } } } $position = $newPosition; deliverPresent($position); } echo $duplicateDeliveries; function deliverPresent($position) { // 2007 throwback // Should really be using a class global $duplicateDeliveries, $houses; $x = $position[0]; $y = $position[1]; if (!isset($houses[$x][$y])) { // They haven't had a present before $houses[$x][$y] = 1; // We only care about the first duplicate delivery return $duplicateDeliveries = $duplicateDeliveries + 1; }