「オンラインハッカソンに挑戦」の4回目です。
前回(3回目)は簡単な問題でしたが、今回はもう少し難易度が上がりますので頑張っていきましょう!
↓3回目はこちら↓
↓最初から挑戦する場合はこちら↓
「ロングヘアセット」の問題
それでは問題の内容を見ていきましょう。
- 入力データ:yes もしくは no のどちらかが”5回”入力される
- 出力データ:数の多い方の文字を出力する
(yes,no,yes,yes,yesの場合はyesを出力)
あーやって、こーやれば出来そうですね!
自分で作れそうと思ったら、記事を読むのを一旦ストップして作ってみてくださいね。
スクラッチで「yes」と「no」を数えるプログラム
上のコードが今回の問題の答えです。
結構簡単でしたね。
一応、解説をします。
- 数える用の変数を2つ用意する:yesとno
- 入力された値に応じて変数の値を1ずつ変える
- 最後にyesがnoより多ければyes、でなければnoと出力する
さらに短いコードで作成してみよう
先ほどのコードブロックの数は、全部で11コでした。
実は、ブロックの数は合計9コまで減らすことが出来るのでチャレンジしてみましょう。
答えを見る
出来ましたか?
このように「作ったコードを見直すこと」をリファクタリングなどと呼んだりします。
お仕事の場合「プログラマーの負担を減らすため」「コードを読みやすくするため」「問題発生時に早く処理するため」「システムを安定して長く使うため」などの理由で行われるので覚えておきましょう。
とは言え、今回の場合、最初に作成した11行の方が内容が分かりやすいコードですので、必ずしも行数を減らせばいいものではないということも覚えておくといいと思います。
Pythonで解いてみる
pythonでは、このようなコードになります。
スクラッチと見比べるとなんとなく意味が分かると思います。
for i in range(5):
これは「5回繰り返す」という意味です。
ifは「もし」、elseは「でなければ」です。
まとめ
「スクラッチでハッカソンに挑戦」の4回目が終わりました。
スクラッチでの解き方や、pythonのことが少しずつ分かってきたのではないでしょうか?
もし実際にゲームに挑戦して、ロングヘアセットをゲットしてみたい場合は、以下のボタンからpaizaのページにいくことが出来るので試してみてください。
※ゲームをする場合は、paizaのアカウントを作成する必要があります。
自分用メールアドレスがない場合は、保護者の方と一緒にやってくださいね。
それでは次回(5回目)もお楽しみに〜✌︎(‘ω’✌︎ )
コメント