ヒューマン・リソース・マシーン 攻略 入社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の分だけステップが少なくて済む。