58 lines
1.2 KiB
PHP
Raw Permalink Normal View History

2022-12-01 09:48:03 +01:00
<?php
namespace trizzssdddAdventOfCode\Y22;
2022-12-01 09:48:03 +01:00
use trizz\AdventOfCode\Solution;
final class Day1 extends Solution
{
public static null|int|string $part1ExampleResult = 24000;
2022-12-01 09:48:03 +01:00
public static null|int|string $part1Result = 72240;
2022-12-01 09:48:03 +01:00
public static null|int|string $part2ExampleResult = 45000;
2022-12-01 09:48:03 +01:00
public static null|int|string $part2Result = 210957;
2022-12-01 09:48:03 +01:00
public bool $filterDataOnLoad = false;
#[\Override]
2022-12-01 09:48:03 +01:00
public function part1(array $data): int
{
return $this->calculateCalories($data)[0];
}
#[\Override]
2022-12-01 09:48:03 +01:00
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;
}
}