Tristan 68583b1b84
All checks were successful
continuous-integration/drone/push Build is passing
Move solutions out of the source itself
2023-12-03 20:47:53 +01:00

58 lines
1.2 KiB
PHP

<?php
namespace trizzssdddAdventOfCode\Y22;
use trizz\AdventOfCode\Solution;
final class Day1 extends Solution
{
public static null|int|string $part1ExampleResult = 24000;
public static null|int|string $part1Result = 72240;
public static null|int|string $part2ExampleResult = 45000;
public static null|int|string $part2Result = 210957;
public bool $filterDataOnLoad = false;
#[\Override]
public function part1(array $data): int
{
return $this->calculateCalories($data)[0];
}
#[\Override]
public function part2(array $data): int
{
$results = $this->calculateCalories($data);
return $results[0] + $results[1] + $results[2];
}
/**
* @param string[] $data
*
* @return int[]
*/
private function calculateCalories(array $data): array
{
$results = [];
$tmpResult = 0;
foreach ($data as $value) {
if ($value !== '') {
$tmpResult += (int) $value;
continue;
}
$results[] = $tmpResult;
$tmpResult = 0;
}
rsort($results);
return $results;
}
}