Passed
Push — master ( 6393b8...af0694 )
by Daan
01:37
created

Day2::loadInput()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 2
eloc 5
c 1
b 0
f 1
nc 2
nop 0
dl 0
loc 10
rs 10
1
<?php
2
3
namespace DaanMooij\AdventOfCode\Year2015\Day2;
4
5
use Exception;
6
use DaanMooij\AdventOfCode\Day;
7
use DaanMooij\AdventOfCode\Year2015\Day2\Present;
8
9
class Day2 implements Day
10
{
11
    /** @var array<string> */
12
    private array $dimensions = [];
13
14
    /** @return void */
15
    public function loadInput(): void
16
    {
17
        $filepath = __DIR__ . "/input.txt";
18
        $file = file($filepath);
19
20
        if (!is_array($file)) {
21
            throw new Exception("Could not open input file: {$filepath}");
22
        }
23
24
        $this->dimensions = $file;
25
    }
26
27
    /** @return void */
28
    public function solve(): void
29
    {
30
        $amountWrappingPaper = 0;
31
        foreach ($this->dimensions as $dimension) {
32
            $present = Present::fromString($dimension);
33
            $amountWrappingPaper += $present->getSurfaceArea();
34
            $amountWrappingPaper += $present->getSmallestSideArea();
35
        }
36
37
        printf("The total amount of wrapping paper is: %s\n", $amountWrappingPaper);
38
    }
39
40
    /** @return array<string> */
41
    public function getDimensions(): array
42
    {
43
        return $this->dimensions;
44
    }
45
}
46