【日付セット】最長の連休paiza (paizaランク C 相当) 解答例 – PHP編【paiza】
【日付セット】 > 最長の連休paiza (paizaランク C 相当)
※リンク先へ移動する為には「paiza」へのログインが必要です。
祝日がpaiza国という独自のものになっていること以外、前回とほぼ変わらないです。標準入力から祝日の配列を作成すればあとは同じ方法で通過できます(*’ω’*)
解答例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
<?php $y = 2019; $m = 1; $d = 1; $array = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; $counter = 0; $holiddayarray = array(); $holiday = array(); $input = trim(fgets(STDIN)); for($i = 0; $i < $input;$i++){ $anc = explode(" ",trim(fgets(STDIN))); $holiword = $anc[0]."/".$anc[1]; array_push($holiday,$holiword); } $oneday = 86400; while($y != 2020 || $m != 1 || $d != 1){ $word = $y."/".$m."/".$d; $ans = strtotime($word); $nextday = $ans + $oneday; $next = date("Y/n/j",$nextday)."/".date("w",$nextday); $test = explode("/",$next); $y = $test[0]; $m = $test[1]; $d = $test[2]; $w = $array[$test[3]]; $test1 = $m."/".$d; $word = $y."/".$m."/".$d; $judge = in_array($test1,$holiday,true); if($judge || $w == "Sat" || $w == "Sun"){ $counter++; } else { if($counter > 0){ array_push($holiddayarray,$counter); } $counter = 0; } } if($counter > 0){ array_push($holiddayarray,$counter); } $counter = 0; echo max($holiddayarray); ?> |
