前書き:
オランダ語では、「ライデン」と「ライデン」である主導と苦しみの単語は、同じように発音されます。1つは「short ei」で、もう1つは「long ij」で書かれています。これは、オランダ人が言うように、「ei」と「ij」の両方が発音されます[ɛi]。
チャレンジ:
数値のリストを与えられて、どれが(もしあれば)先行しているか、どれが(もしあれば)苦しんでいるかを判断します。
主な数値は次のとおりです。
- 正の数
- 4桁以上
- 価値に関してリストの上位50%にある
- 3桁目が2桁目で置き換えられ、2桁目が0で埋められている場合(つまり、
1234
になる1024
)、値の面でリストの上位50%にあります。
苦しんでいる数は:
- 負の数
- 4桁以上
- 価値の点でリストの最低50%にある
- 3桁目が2桁目で置き換えられ、2桁目が0で埋められている(つまり、
-4321
になる-4031
)場合、値の点でリストの最下位50%にあります。
例:
入力:[5827, 281993, 3918, 3854, -32781, -2739, 37819, 0, 37298, -389]
出力:リーディング:[5827, 281993, 37819, 37298]
; 苦しみ:[-32781, -2739]
説明:
数値をソートして2つに分割すると、次のようになります。
[[-32781, -2739, -389, 0, 3798], [3854, 3918, 5827, 37819, 281993]]
少なくとも4桁の負の数は2つしかありません[-32781, -2739]
。上記のように数字を変更しても、それらの位置は変更されないため、どちらも数字に悩まされています。
最も大きい半分の場合、すべての数値は少なくとも4桁です:[3854, 3918, 5827, 37819, 281993]
。上記のように数字を変更すると、一部の位置が変更されます。3854
なる3084
の下にそれを入れ、3798
最低50%であるので、これは3854
このリスト内の主要な数値ではありません。3918
どちらになるか3098
についても同じことが言えます3798
。他の3つの数値は先行していて、に5827
なるはずですが5087
、これはまだ上3798
にあり、実際にはソートされたリストの同じインデックスにあります。そう[5827, 37819, 281993]
主要な数値です。
チャレンジルール:
- I / Oは柔軟です。input-listは、整数のリスト、2D数字リスト、文字列のリストなどです。出力は、整数のリスト、2つの区切られたリスト、2つの文字列で、どちらもSTDOUTに出力されます。
- 数値が先行/苦しんでいるかどうかを判断する場合、数字がそれに応じて変更された場合のみ、その数値の新しい位置を確認します。すべての数値に変更を適用した後ではありません。
- 変更された番号ではなく、元の番号を出力します。
- 先行出力リストと影響を受ける出力リストの番号は、任意の順序にすることができます。
- 入力リストのサイズが奇数の場合、中央の数はどちらにも属しません。
- 番号は、変更後も一意であることが保証されています。したがって、のような
[0, 1, 1045, 1485]
リストは、変更後と1485
等しいため、有効な入力リストではありません1045
。
一般的なルール:
- これはcode-golfなので、バイト単位の最短の回答が優先されます。
コードゴルフ言語が非コードゴルフ言語で回答を投稿することを思いとどまらせないでください。「あらゆる」プログラミング言語について、可能な限り短い答えを考え出すようにしてください。 - デフォルトのI / Oルールを使用した回答には標準のルールが適用されるため、STDIN / STDOUT、関数/メソッドを適切なパラメーターで使用し、戻り値の型の完全なプログラムを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテスト(TIOなど)のリンクを追加してください。
- また、回答の説明を追加することを強くお勧めします。
テストケース:
Input: [5827, 281993, 3918, 3854, -32781, -2739, 37819, 0, 37298, -389]
Output: leading: [5827, 281993, 37819, 37298]; suffering: [-32781, -2739]
Input: [-100, 472, 413, -1782]
Output: leading: []; suffering: [-1782]
Input: [-1234, -1235, -1236, 1234, 1235, 1236]
Output: leading: [1234, 1235, 1236]; suffering: [-1234, -1235, -1236]
Input: [-1919, -1819, -1719, -1619, -1500, -1444, 40, 4444, 18]
Output: leading: [4444]; suffering: []
Input: [-1004, -1111, -1000]
Output: leading: []; suffering: [-1111]
Input: [-1004, -1111, -1010, 1000]
Output: leading: [1000]; suffering: [-1111]
Input: [1000, -1000]
Output: leading: [1000]; suffering: [-1000]
Input: [1000, -5000, 4000]
Output: leading: [4000]; suffering: [-5000]