オフラインリアルタイムどう書く という、 @Nabetani さん主催のイベントを模したものを ESM の社内向けに行ったものです。
出題者: @mtsmfm スペシャルサンクス: @mattsan
以下のような 8 席のラーメン屋がある。
行列を捌き切った時にどの席が埋まっているかを求めて欲しい。
-
お客さんのグループを先頭から 1 グループずつ案内する
-
1 番席から順に詰めて座るように案内する
-
お客さんは着席してから以下のように状態が遷移し、最終的には店を出ていく
-
1 グループ案内している間に、お客さんの状態は 1 つ進む
-
お客さんが複数人のグループの場合、全員が横に並べるようになるまで待ってもらう
-
席に余裕がなく案内できない間にもお客さんの状態は進む
1 から 8 までの数字が並んだ文字列。1 文字がお客さん 1 グループの人数を示している。
例) 3316
1 番の席から時計周りで席の状況を 8 文字で返す。
例) 11111110
誰かが座っていれば 1
、空いていれば 0
。
- 不正な入力に対処する必要はない
- 実装が完了したら gist、 qiita などインターネットに見えるところに貼ってもらって、この gist に URL をコメントしてください
入力 3316
に対して 11111110
を返せば正解。
流れは以下のようになる。
# | 入力 | 答え |
---|---|---|
1 | 3316 | 11111110 |
2 | 3342153 | 11111111 |
3 | 8 | 11111111 |
4 | 232624 | 11110110 |
5 | 1 | 10000000 |
6 | 224673432 | 11111000 |
7 | 123464334 | 11111110 |
8 | 44372332 | 11111111 |
9 | 2344 | 11111111 |
10 | 6448476233 | 11111100 |
11 | 4345174644 | 11111111 |
12 | 77743 | 11111110 |
13 | 2136524281 | 10000000 |
14 | 344373 | 11100000 |
15 | 434226 | 11111111 |
16 | 7433223 | 11111110 |
17 | 2246534 | 11110111 |
18 | 634 | 11111110 |
19 | 2222 | 11111100 |
20 | 2442343238 | 11111111 |
21 | 7243344 | 11111111 |
22 | 26147234 | 10111111 |
23 | 34424 | 10011111 |
24 | 6334 | 11011111 |
25 | 3828342 | 11011110 |
26 | 4431 | 11110000 |
27 | 2843212125 | 11111111 |
28 | 333336482 | 11000000 |
29 | 374 | 11110000 |
30 | 4382333 | 11100111 |
test("3316", "11111110")
test("3342153", "11111111")
test("8", "11111111")
test("232624", "11110110")
test("1", "10000000")
test("224673432", "11111000")
test("123464334", "11111110")
test("44372332", "11111111")
test("2344", "11111111")
test("6448476233", "11111100")
test("4345174644", "11111111")
test("77743", "11111110")
test("2136524281", "10000000")
test("344373", "11100000")
test("434226", "11111111")
test("7433223", "11111110")
test("2246534", "11110111")
test("634", "11111110")
test("2222", "11111100")
test("2442343238", "11111111")
test("7243344", "11111111")
test("26147234", "10111111")
test("34424", "10011111")
test("6334", "11011111")
test("3828342", "11011110")
test("4431", "11110000")
test("2843212125", "11111111")
test("333336482", "11000000")
test("374", "11110000")
test("4382333", "11100111")