2021/11/06

ヒューマン・リソース・マシーン 入社21年目−ゼロが区切り

目次

1)課題

左側にいくつかの「0で終わる数値グループ」が置いてあります。

各グループ内の数値の合計値を算出し、右側に運んで下さい。

2)解説

左のコンベアからパネルを取り出し, 0と書いたパネルを取るまでパネルの値を足し込んでいけば, 上司の要求に応えられます. 手順を考えてみます.

  1. 入社20 年目の「掛け算のしかた」と同じように, パネルの値を足し込むためのカーペットが必要です. カーペットのラベルに「こたえ」と書いておきます.
  2. 「こたえ」は, 0から始める必要があります. カーペットの5番に0があるので, これをコピーします.
  3. 左のコンベアからパネルとカーペットの「こたえ」に置いてあるパネルを足します. 足した結果を「こたえ」にコピーします.

ここまで考えた内容でプログラムを作ってみました. これを実行すると, 左のコンベアからパネルを取り出し, 「こたえ」に足し続ける様子を観察できます. 

このプログラムでは, 左のコンベアのパネルがなくなるまで繰り返し, 右のコンベアにパネルを運びませんので, 上司の要求に応えられていません. 左のコンベアから取ったパネルが0の場合の対応を考えます. 左のコンベアから取ったパネルが0であれば, 問題文にある「数値グループ」が終わったということです. カーペットの「こたえ」には, 「数値グループ」のパネルを足した結果となっています. これを右のコンベアに運べば, 上司の要求に応えられます.

INBOXコマンドを使って左のコンベアからパネルを取った直後に, 0であるか判定します. 0であれば, カーペットの「こたえ」においてあるパネルを取り, 右のコンベアに運びます. 運び終われば, 最初に戻って次の「数値グループ」の合計を求めます. 

プログラムを実行するとクリアーできます. スピード目標については, 記事を改めて解説します.

目次

0 件のコメント:

コメントを投稿

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

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