HackerRankの問題をpaiza.ioで解いてみた

はじめに

HackerRankをやっていてテスト駆動をもっと手軽にしたかったのでPaiza.ioを久しぶりに使ってみました。

※基本的な標準入力の内容に関しては以下でまとめています。

PHPによる標準入力

Paiza.ioの使い方

使い方と言ってもとても簡単です。

画面はこんな感じ。

入力欄に標準入力となる値を記載。

コードを書いたら実行すればOK。入力欄から出力欄へタブが自動で切り替わり、算出した値を出してくれます。

例)

入力する値

2 3

期待する値

6

コード

<?php
    $a = fgets(STDIN);
    $b = fgets(STDIN);
    echo $a*$b;
?>

HackerRankの問題をpaiza.ioで解いてみた

問題はこちら

入力する値

6
1 2 3 4 10 11

出力する値

31

コード

$count = fgets(STDIN); //$numbersに1 1が代入される
$numbers = fgets(STDIN); //$numbersに1 1が代入される
$number = explode(" ",$numbers);//スペースで分割して配列を作成
$array_sum = 0;//変数の定義※for文の変数として利用するため

for($i=0;$i<$count;$i++){
$array_sum = $array_sum+ $number[$i];
}

echo $array_sum;

HackerRank風に関数を用いた別解答(後述のHackerRankで解いた場合と比較用)

関数の部分はコチラでもOK

$array_sum = 0;

function simpleArraySum($count,$number) {
    global $array_sum; //変数のスコープをグローバルにする。
    for($i=0;$i<$count;$i++){
    $array_sum = $array_sum + $number[$i];
    }
    return $array_sum;
}

HackerRankで通常通り解くと以下になります。

コードの量が全然違いますね!

置き換えのコツ

HackerRankからPaiza.ioに置き換える際のコツ。

①全てコピぺする

②fopen関数、fclose関数を削除する。

③fwriteの第2引数が出力値になるので、そこの値をechoする。

④変数$stdinをSTDINと書き換える。(※STDINで書かれている問題もあり。)

まさる
標準入力の値取得部分はfgets関数、fscanf関数を用いて扱いやすいように置き換えてもOKですね!
ちょび
STDINは小文字だと正常に処理されないので注意!!

おわりに

個人的にHackerRankのコードは規約的なものを感じるため、気軽にテストがしづらくpaiza.ioを使用してみました。

やっぱり便利ですね◎

コメントを残す