Apply rector, phpstan and php-cs-fixer
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@ -4,12 +4,14 @@ namespace trizz\AdventOfCode\Y21;
|
||||
|
||||
use trizz\AdventOfCode\Solution;
|
||||
|
||||
class Day1 extends Solution
|
||||
final class Day1 extends Solution
|
||||
{
|
||||
public static int|string|null $part1ExampleResult = 7;
|
||||
|
||||
public static int|string|null $part1Result = 1688;
|
||||
|
||||
public static int|string|null $part2ExampleResult = 5;
|
||||
|
||||
public static int|string|null $part2Result = 1728;
|
||||
|
||||
/**
|
||||
|
@ -4,13 +4,15 @@ namespace trizz\AdventOfCode\Y21;
|
||||
|
||||
use trizz\AdventOfCode\Solution;
|
||||
|
||||
class Day2 extends Solution
|
||||
final class Day2 extends Solution
|
||||
{
|
||||
public static int|string|null $part1ExampleResult = 150;
|
||||
public static int|string|null $part1Result = 1654760;
|
||||
|
||||
public static int|string|null $part1Result = 1_654_760;
|
||||
|
||||
public static int|string|null $part2ExampleResult = 900;
|
||||
public static int|string|null $part2Result = 1956047400;
|
||||
|
||||
public static int|string|null $part2Result = 1_956_047_400;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
@ -4,10 +4,11 @@ namespace trizz\AdventOfCode\Y21;
|
||||
|
||||
use trizz\AdventOfCode\Solution;
|
||||
|
||||
class Day3 extends Solution
|
||||
final class Day3 extends Solution
|
||||
{
|
||||
public static int|string|null $part1ExampleResult = 198;
|
||||
public static int|string|null $part1Result = 3309596;
|
||||
|
||||
public static int|string|null $part1Result = 3_309_596;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
@ -27,9 +28,9 @@ class Day3 extends Solution
|
||||
$gammaRate = '';
|
||||
$epsilonRate = '';
|
||||
|
||||
foreach ($bits as $values) {
|
||||
$zeros = array_filter($values, static fn ($value) => $value === '0');
|
||||
$ones = array_filter($values, static fn ($value) => $value === '1');
|
||||
foreach ($bits as $bit) {
|
||||
$zeros = array_filter($bit, static fn ($value) => $value === '0');
|
||||
$ones = array_filter($bit, static fn ($value) => $value === '1');
|
||||
|
||||
$gammaRate .= ($ones > $zeros) ? '1' : '0';
|
||||
$epsilonRate .= ($ones < $zeros) ? '1' : '0';
|
||||
|
@ -4,12 +4,14 @@ namespace trizz\AdventOfCode\Y21;
|
||||
|
||||
use trizz\AdventOfCode\Solution;
|
||||
|
||||
class Day4 extends Solution
|
||||
final class Day4 extends Solution
|
||||
{
|
||||
public static int|string|null $part1ExampleResult = 4512;
|
||||
|
||||
public static int|string|null $part1Result = 60368;
|
||||
|
||||
public static int|string|null $part2ExampleResult = 1924;
|
||||
|
||||
public static int|string|null $part2Result = 17435;
|
||||
|
||||
/**
|
||||
@ -30,15 +32,13 @@ class Day4 extends Solution
|
||||
|
||||
/**
|
||||
* @param int[] $winningCard
|
||||
* @param int $number
|
||||
* @psalm-param array<int, array<array-key, bool|int>|string> $winningCard
|
||||
*
|
||||
* @return int
|
||||
* @psalm-param array<int, array<array-key, bool|int>|string> $winningCard
|
||||
*/
|
||||
protected function calculateScore(array $winningCard, int $number): int
|
||||
private function calculateScore(array $winningCard, int $number): int
|
||||
{
|
||||
$return = [];
|
||||
array_walk_recursive($winningCard, static function (bool $value, int $key) use (&$return) {
|
||||
array_walk_recursive($winningCard, static function (bool $value, int $key) use (&$return): void {
|
||||
$return[$key] = $value;
|
||||
});
|
||||
$unusedNumbers = array_keys(array_filter($return, static fn (bool $value) => !$value));
|
||||
@ -47,14 +47,13 @@ class Day4 extends Solution
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $numberList
|
||||
* @param string $separator
|
||||
* @param non-empty-string $separator
|
||||
*
|
||||
* @return int[]
|
||||
*
|
||||
* @psalm-return array<int, int>
|
||||
*/
|
||||
protected function explodeNumbers(string $numberList, string $separator): array
|
||||
private function explodeNumbers(string $numberList, string $separator): array
|
||||
{
|
||||
return array_map(
|
||||
static fn ($value) => (int) $value,
|
||||
@ -67,13 +66,10 @@ class Day4 extends Solution
|
||||
|
||||
/**
|
||||
* @param string[] $data
|
||||
* @param bool $firstWins
|
||||
*
|
||||
* @return int|string
|
||||
*/
|
||||
protected function playBingo(array $data, bool $firstWins = true): int|string
|
||||
private function playBingo(array $data, bool $firstWins = true): int|string
|
||||
{
|
||||
$numbers = $this->explodeNumbers(array_shift($data), ',');
|
||||
$numbers = $this->explodeNumbers(array_shift($data) ?? '', ',');
|
||||
$cards = $this->setupCards($data);
|
||||
$finishedCards = [];
|
||||
|
||||
@ -129,7 +125,7 @@ class Day4 extends Solution
|
||||
*
|
||||
* @psalm-return array<int, array<int, array<false|int>|string>>
|
||||
*/
|
||||
protected function setupCards(array $data): array
|
||||
private function setupCards(array $data): array
|
||||
{
|
||||
$cards = array_chunk($data, 5);
|
||||
foreach ($cards as $card => $rows) {
|
||||
@ -148,7 +144,7 @@ class Day4 extends Solution
|
||||
*
|
||||
* @psalm-return list<int>
|
||||
*/
|
||||
protected function checkCards(array $cards, array $finishedCards): array
|
||||
private function checkCards(array $cards, array $finishedCards): array
|
||||
{
|
||||
$winningCards = [];
|
||||
// Check rows
|
||||
@ -191,7 +187,7 @@ class Day4 extends Solution
|
||||
return $winningCards;
|
||||
}
|
||||
|
||||
protected function arrayHasSingleValue(array $array, bool $value): bool
|
||||
private function arrayHasSingleValue(array $array, bool $value): bool
|
||||
{
|
||||
return count(array_unique($array)) === 1 && end($array) === $value;
|
||||
}
|
||||
|
@ -5,20 +5,22 @@ namespace trizz\AdventOfCode\Y21;
|
||||
use JetBrains\PhpStorm\Immutable;
|
||||
use trizz\AdventOfCode\Solution;
|
||||
|
||||
class Day6 extends Solution
|
||||
final class Day6 extends Solution
|
||||
{
|
||||
public static int|string|null $part1ExampleResult = 5934;
|
||||
|
||||
public static int|string|null $part1Result = 350917;
|
||||
|
||||
public static int|string|null $part2ExampleResult = 26984457539;
|
||||
public static int|string|null $part2Result = 1592918715629;
|
||||
public static int|string|null $part2ExampleResult = 26_984_457_539;
|
||||
|
||||
public static int|string|null $part2Result = 1_592_918_715_629;
|
||||
|
||||
/**
|
||||
* @var int[]
|
||||
*
|
||||
* @psalm-param array{int: int}
|
||||
*/
|
||||
#[Immutable]
|
||||
protected array $startState = [
|
||||
#[Immutable] private array $startState = [
|
||||
8 => 0,
|
||||
7 => 0,
|
||||
6 => 0,
|
||||
@ -48,11 +50,10 @@ class Day6 extends Solution
|
||||
|
||||
/**
|
||||
* @param int[] $state
|
||||
* @psalm-param array{int: int} $state
|
||||
*
|
||||
* @return array
|
||||
* @psalm-param array{int: int} $state
|
||||
*/
|
||||
protected function processDay(array $state): array
|
||||
private function processDay(array $state): array
|
||||
{
|
||||
$newState = $state;
|
||||
|
||||
@ -75,11 +76,11 @@ class Day6 extends Solution
|
||||
return $newState;
|
||||
}
|
||||
|
||||
protected function processPuzzle(int $numberOfDays, string $data): int
|
||||
private function processPuzzle(int $numberOfDays, string $data): int
|
||||
{
|
||||
$state = $this->startState;
|
||||
|
||||
array_map(static function (string $stateValue) use (&$state) {
|
||||
array_map(static function (string $stateValue) use (&$state): void {
|
||||
++$state[(int) $stateValue];
|
||||
}, explode(',', $data));
|
||||
|
||||
|
@ -4,13 +4,15 @@ namespace trizz\AdventOfCode\Y21;
|
||||
|
||||
use trizz\AdventOfCode\Solution;
|
||||
|
||||
class Day7 extends Solution
|
||||
final class Day7 extends Solution
|
||||
{
|
||||
public static int|string|null $part1ExampleResult = 37;
|
||||
|
||||
public static int|string|null $part1Result = 344297;
|
||||
|
||||
public static int|string|null $part2ExampleResult = 168;
|
||||
public static int|string|null $part2Result = 97164301;
|
||||
|
||||
public static int|string|null $part2Result = 97_164_301;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
@ -28,15 +30,10 @@ class Day7 extends Solution
|
||||
return $this->calculateFuel($data[0], forPart2: true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $data
|
||||
* @param bool $forPart2
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
protected function calculateFuel(string $data, bool $forPart2 = false): int
|
||||
private function calculateFuel(string $data, bool $forPart2 = false): int
|
||||
{
|
||||
$crabs = array_map(static fn (string $crab) => (int) $crab, explode(',', $data));
|
||||
|
||||
/** @psalm-param array{int: int} $fuelPerPosition */
|
||||
$fuelPerPosition = [];
|
||||
|
||||
|
@ -6,7 +6,7 @@ use trizz\AdventOfCode\Solution;
|
||||
use trizz\AdventOfCode\Utils\Arr;
|
||||
use trizz\AdventOfCode\Utils\Str;
|
||||
|
||||
class Day8 extends Solution
|
||||
final class Day8 extends Solution
|
||||
{
|
||||
public static int|string|null $part1ExampleResult = 26;
|
||||
|
||||
@ -14,7 +14,7 @@ class Day8 extends Solution
|
||||
|
||||
public static int|string|null $part2ExampleResult = 61229;
|
||||
|
||||
public static int|string|null $part2Result = 1027422;
|
||||
public static int|string|null $part2Result = 1_027_422;
|
||||
|
||||
private array $digitPatterns;
|
||||
|
||||
@ -26,7 +26,7 @@ class Day8 extends Solution
|
||||
public function part1(array $data): int
|
||||
{
|
||||
$values = array_map(
|
||||
static fn ($item) => strlen($item),
|
||||
static fn ($item) => strlen((string) $item),
|
||||
Arr::flatten(
|
||||
array_map(
|
||||
static fn ($item) => explode(' ', $item),
|
||||
@ -48,8 +48,8 @@ class Day8 extends Solution
|
||||
foreach ($data as $line) {
|
||||
$item = explode(' | ', $line);
|
||||
$sequences[] = [
|
||||
'patterns' => array_map([Str::class, 'sort'], explode(' ', $item[0])),
|
||||
'shown' => array_map([Str::class, 'sort'], explode(' ', $item[1])),
|
||||
'patterns' => array_map(Str::sort(...), explode(' ', $item[0])),
|
||||
'shown' => array_map(Str::sort(...), explode(' ', $item[1])),
|
||||
];
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user