diff --git a/Advent Of Code Day 9-Combined.ps1 b/Advent Of Code Day 9-Combined.ps1 new file mode 100644 index 0000000..dfe9af9 --- /dev/null +++ b/Advent Of Code Day 9-Combined.ps1 @@ -0,0 +1,68 @@ +$inputdata=import-csv -header "Number" .\aocd9input.txt +$inputdata | %{$_.Number = [int64]$_.Number} +$buffer=25 +$mynumbers=$inputdata[0 .. 24] | select-object -ExpandProperty Number +$tolookfor=-1 +for($i=25; $i -lt $inputdata.count; $i++){ + + $minval = (($mynumbers|Sort-Object )[0 .. 1] |measure-object -sum | select-object -ExpandProperty sum)[0] + $maxval = (($mynumbers|Sort-Object )[-2 .. -1] |measure-object -sum | select-object -ExpandProperty sum)[0] + $newnum = $inputdata[$i].Number + #write-host "Prior $($mynumbers[-1]) : $newnum" + if($newnum -lt $minval){ + #write-host "ERROR $newnum too low" + $tolookfor = $newnum + break + } + if($newnum -gt $maxval){ + #write-host "ERROR $newnum too high" + $tolookfor = $newnum + break + } + $possiblevalues = @() + for($b=0;$b -lt $mynumbers.Count;$b++){ + $mynum=$mynumbers[$b] + for($a=1;$a -lt $mynumbers.count;$a++ ){ + $nextnum = $mynumbers[$a] + if($mynum -eq $nextnum){ + #write-host "$mynum is same as $nextnum" + continue + } + $possiblevalues += $mynum + $nextnum + } + } + if($possiblevalues -notcontains $newnum){ + #write-host "ERROR $newnum not a sum of prior $buffer numbers" + $tolookfor = $newnum + break + } + $null,$mynumbers=$mynumbers + $mynumbers += $newnum +} +$howmanynums=2 +$found=$false +if($tolookfor -eq -1){ + throw "Invalid Input for final check" +} +write-host "Part 1 Answer is $tolookfor" +foreach($num in ($howmanynums .. $inputdata.count)){ + if($found){break} + for($i=0;$i -lt $inputdata.count - $num; $i++){ + if($found){ + $break + } + $possiblevalues = @() + $mynums = $inputdata[$i .. ($i + $num -1)]|Select-Object -ExpandProperty Number + $mysum = $mynums | Measure-Object -sum | Select-Object -ExpandProperty Sum + if($mysum -eq $tolookfor){ + $minnum = ($mynums | Measure-Object -minimum).minimum + $maxnum = ($mynums | Measure-Object -Maximum).Maximum +# write-host "$mynums sum to $mysum" +# write-host "Smallest $minnum + Largest $maxnum = $($minnum + $maxnum)" + write-host "Part 2 answer is $($minnum + $maxnum)" + $found=$true + break + } + #write-host "$mynums : $mysum" + } +} \ No newline at end of file