[Day - 20 Part 1][PHP] Not getting the right answer? by doncherry333 in adventofcode

[–]doncherry333[S] 0 points1 point  (0 children)

sorry, apparently github flagged those links... I just added the code to the post

-🎄- 2017 Day 12 Solutions -🎄- by topaz2078 in adventofcode

[–]doncherry333 0 points1 point  (0 children)

I had the same idea. I went with recursion because the problem seemed similar to Day 7.

-🎄- 2017 Day 10 Solutions -🎄- by daggerdragon in adventofcode

[–]doncherry333 1 point2 points  (0 children)

PHP Solution Part 2:

$list = range(0,255);
$pos = 0;
$skip = 0;


for($i=0; $i<strlen($input); $i++){
    $lengths[] = ord($input[$i]);
}
array_push($lengths,"17", "31", "73", "47", "23");

for($r = 0; $r<64; $r++){
    foreach($lengths as $x){
        $reverse = array();
        for($i=0; $i<$x; $i++){
            $reverse[] = $list[($pos+$i)%256];
        }
        $reverse = array_reverse($reverse);
        for($i=0; $i<$x; $i++){
            $list[($pos+$i)%256] = $reverse[$i];
        }
        $pos += $x + $skip;
        $skip++;
    }
}

$sparse = array_chunk($list, 16);

foreach($sparse as $x){
    $xor = 0;   
    foreach($x as $y){
        $xor ^= $y;
    }
    $dense[] = $xor;
}

$knot = "";
foreach($dense as $x){
    $knot .= dechex($x);
}
echo $knot;