DEV Community

Discussion on: Daily Challenge #173 - Pandemia

Collapse
 
aminnairi profile image
Amin

PHP

<?php

declare(strict_types=1);

function getInfectedPercentage(string $world): float {
    $infected = 0;
    $population = 0;

    foreach (explode("X", $world) as $continent) {
        $continentPopulation = strlen($continent);

        $population += $continentPopulation;

        if (strpos($continent, "1") !== false) {
            $infected += $continentPopulation;
        }
    }

    if ($population === 0) {
        return 0;
    }

    return $infected / $population * 100;
}

var_dump(getInfectedPercentage("01000000X000X011X0X"));
var_dump(getInfectedPercentage("01X000X010X011XX"));
var_dump(getInfectedPercentage("XXXXX"));
var_dump(getInfectedPercentage("00000000X00X0000"));
var_dump(getInfectedPercentage("0000000010"));
var_dump(getInfectedPercentage("000001XXXX0010X1X00010"));
var_dump(getInfectedPercentage("X00X000000X10X0100"));

// float(73.333333333333)
// float(72.727272727273)
// float(0)
// float(0)
// float(100)
// float(100)
// float(42.857142857143)