バスの負荷は合法ですか?


15

私は今日バスに乗っていて、このサインに気づきました:

      seated    standing    wheelchairs
max1    37         30            00
max2    36         26            01
max3    34         32            00

座っている乗客、立ち客、車椅子の数はすべて、テーブルのある列より多くてはいけません。(詳細についてはチャットを参照してください。)

この課題のために、この考え方を一般化します:厳密に正の長さN(乗客の種類の数)の非負の整数リストと、厳密に正の次元の非負の整数行列(N列と構成ごとに1行)を与えます、またはこれの転置)、どの構成の制限が満たされているかを示すインデックス/真偽値/ 2つの一意の値のリストを返します。

たとえば、上記のマトリックスの場合:
30,25,1[1](0-indexed)[2](1-indexed)or [false,true,false](Boolean)or ["Abe","Bob","Abe"](two unique values)etc.

次のテストケースは、真/偽のために上記の行列と0/1を使用します。
[30,30,0][1,0,1]
[30,31,0][0,0,1]
[35,30,0][1,0,0]
[0,0,1][0,1,0]
[0,0,0][1,1,1]
[1,2,3][0,0,0]

次のテストケースでは、次のマトリックスを使用します。
1 2 0 4
2 3 0 2

[1,2,1,2][0,0]
[1,3,0,1][0,1]
[1,2,0,3][1,0]
[1,2,0,1][1,1]


私はこの挑戦を誤解していたりすることができます[30,31,0]こと[1, 1, 1]、それがによってカバーされているためmax3
Okx

真理値の交換は許可されていますか?(たとえばの代わりに任意のtruthy値0の代わりに、あらゆるfalsy 1 1?)
ミスターXcoder

@Okxあなたは何かを誤解しています。[x,31,z]アウトルールmax1max2、彼らは31 standeesを許可していませんので。
アダム

@ Mr.Xcoderこれは通常、このようなチャレンジで許可されていますか?
アダム

私が考えるために使用される(参照(2) )も参照マーティンさんのコメントを)これはデフォルトで許可されていますが、私はメタコンセンサスを発見していません。私はこのメタ質問を投稿することから始めました。OPの最初に尋ねるべきだという結論です。私は通常それを許可しますが、それらを交換すべきでない理由はわかりません。
Mr Xcoder

回答:




4

オクターブ、15バイト

@(a,b)all(a>=b)

オンラインでお試しください!

sundarのコメントによると、転置を省略すると2バイト節約されます。


OPでは、質問に示されているものの転置として行列を使用できb、行ベクトルではなく列ベクトルとして取得できます(リストとして指定されているため)、2バイトを節約します:オンラインで試してみてください!
スンダ



2

ゼリー、3バイト

<Ẹ€

オンラインでお試しください!

0= True、1= False。


値が明瞭である必要がない場合は、動作します
ミスターXcoder

@ Mr.Xcoder私はそのオプションがここで与えられるとは思わない。私は待って見ると思います。
エリックアウトゴルファー


1
@ Mr.Xcoder Hm、それは正確には「真偽」ではなく、「偽」であるように見えます。
エリックアウトゴルファー

@ Mr.Xcoder Jellyが必要です。
アダム




2

Retina 0.8.2、57バイト

\d+
$*
;(?=.*;(.*))
;$1¶
%(+`,1*(1*)(;.*),\1$
$2
(1*);\1$

オンラインでお試しください!リンクにはテストケースが含まれますが、出力はすべて一緒に実行されます。説明:

\d+
$*

単項に変換します。

;(?=.*;(.*))
;$1¶

行列の各行にリストの独自のコピーを与えます。

%(

マトリックスの各行で個別に操作します。

+`,1*(1*)(;.*),\1$
$2

行の最後の番号が少なくともリストの番号と同じ大きさである間に、行とリストの最後の番号を繰り返し削除します。

(1*);\1$

リストには1つの番号が残っている必要があり、行の番号は少なくともそれと同じ大きさでなければなりません。




1

05AB1E、5 バイト

εs<›P

オンラインそれを試してみたり、すべてのテストケースを確認してください

説明:

残念ながら05AB1E v1にはorの1文字の組み込みがないため、代わりにを使用する前に各値を減らします。現在開発中の05AB1E v2には、これらのビルトインが含まれます。

ε        # For-each row of the (implicitly input) matrix:
 s       #  Swap, so the (implicitly input) list is at the top of the stack
  <      #  Decrease every value in the input-list by 1
         #   i.e. [30,25,1] → [29,24,0]
        #  Check for each value in the matrix-row if they're larger
         #  than the input-list value at the same index
         #   i.e. [37,30,0] and [29,24,0] → [1,1,0]
    P    #  Then take the product of these checks
         #   i.e. [1,1,0] → 0



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.