🐙
【PHP】 list()、sscanf()の使うコツ
競技プログラミングでありがちなケース。
標準入力が一行半角スペース区切りの場合(例、「M N」)は、list()を使った方がきれいにかけることを知った。なおsscanf()でも書ける模様。
以下の通り。
ただし、一行の要素が多い場合は面倒そうだ。
<?php
// 今まで
//$input_line = fgets(STDIN); // "1 100"
//$start = explode(" ", $input_line)[0]; //1
//$end = explode(" ", $input_line)[1]; //100
// これから
$input_line = fgets(STDIN); // "1 100"
list($start, $end) = explode(" ", $input_line);
//こっちでもOK
$input_line = fgets(STDIN); // "1 100"
sscanf($input_line, "%d %d", $start, $end);
echo $start.PHP_EOL; // 1
echo $end.PHP_EOL; // 100
?>
Discussion