30代SEの自由帳

最初のタイトルは頓挫した

ヒューマン・リソース・マシーン 攻略 入社2年目 忙しい運び屋さん

課題

左側にパネルを順番に右側に運んでください。

使用可能な命令

  • inbox
  • outbox
  • jump

初出命令

  • jump
     プログラムの好きな場所にジャンプする。

効率目標

  • サイズ:3行
  • スピード:25ステップ

ヒント

その1

ジャンプでプログラムの最初に戻るとどうなる?

回答例 + 解説

サイズ

回答例 + 解説

ラベル1// 1セットの開始位置
1. inbox
2. outbox
3. jump:ラベル1

今回もチュートリアル的な問題なので、jumpを使った繰り返し処理(ループ)を入れるだけ。 拾って(inbox)、運ぶ(outbox)を繰り返す(jumpでinboxに戻る)だけ。

スピード

回答例 + 解説

ラベル1// 1セットの開始位置
1. inbox
2. outbox
3. inbox
4. outbox
5. jump:ラベル1

汎用化するとステップはかさむ + 必ずしもサイズとステップを同時に満たせないよ。ってのを明示した問題だと思われる。 繰り返しの前に拾って(inbox)、運ぶ(outbox)を1セット追加。

同じ4回運ぶのでも、in-out-j-in-out-j-in-out-j-in-out-jの34=12ステップより、 in-out-in-out-j-in-out-in-out-jの52=10ステップの方がjumpの分だけステップが少なくて済む。

  

<前:1年目> <目次> <次:3年目>