2021/10/02

ヒューマン・リソース・マシーン 入社7年目−ゼロを取り除け

1)課題

「0じゃないデータ」を全て右側に運んでください。

[JUMP if zero]が使用可能になりました。手元のデータが0の時だけ、指定先にジャンプします。0でない場合は次の行を実行します。

2)解説

JUMP if zeroコマンドの使い方を学ぶための問題です. 

コマンドをいくつか並べて, JUMP if zeroコマンドの動作を確認します. INBOXコマンドとJUMP if zeroコマンドを並べ, ステップ実行してみました. 持っているパネルが7なので, 0ではないためJUMP if zeroコマンドの次の行に進みました. 持っているパネルが0であれば, JUMP if zeroコマンドから出ている矢印の先に進み, 続けて1行目のINBOXコマンドを実行します. 

問題文には, 「0じゃないデータ」を右のコンベアに運ぶように書いてあります. 課題をクリアーするために, コマンドを組み合わせる方法を考えてみます. 

  1. 左のコンベアからパネルを取り出します. 
  2. パネルが0なら, 先頭に戻ります. 
  3. パネルが0でなければ, パネルを右のコンベアに運び, 先頭に戻ります.

手順通りにコマンドを並べました. このコードを実行すると課題をクリアーできます.

この課題をクリアーすると, これ以降, サイズ目標とスピード目標が表示されます. 両方とも達成できました.

3)補足 

JUMP if zeroコマンドがエラーとなる条件を確認します.

パネルを持たずにJUMP if zeroコマンドを実行するとエラーとなり, 上司に怒られます.

4)まとめ

  1. この課題では, JUMP if zeroコマンドを使って, 持っているパネルが0かどうかを判定する方法を学びました. 
  2. JUMP if zeroコマンドを使えば, 持っているパネルの値によって次に実行するコマンドを選択できます.
  3. パネルを持たずにJUMP if zeroコマンドを実行すると, エラーとなります.
  4. この問題から, サイズ目標とスピード目標が示されます. プロならば, これらの目標をクリアーしたいところです. 

0 件のコメント:

コメントを投稿

ヒューマン・リソース・マシーン 入社41年目−並べ替えよ

目次 1)課題 0を終端とした文字列がいくつか流れてきます。各文字列に対してソート(並べ替え)を行い、小さい順(昇順)に右側へ運んでください。 2)状況の確認 この問題では, 予めコードが入っています. このコードを実行して, 何をするコードなのか確かめます.  左のコンベアから...