タグ付けされた質問 「array-manipulation」

配列の使用と操作を通じて特定の問題を解決するための競争。

27
ブロック対角行列を印刷する
これは単純な、一口サイズ(バイトサイズ?)のコードゴルフです。10未満の正の整数の空でないリストが与えられると、ブロック対角行列を出力します。リストはブロックのサイズを順番に指定します。ブロックは10未満の正の整数で構成する必要があります。したがって、入力として指定された場合 [5 1 1 2 3 1] たとえば、出力は次のようになります。 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 …

23
配列を等化する
チャレンジ 整数の配列aaaが与えられます。では動きますができ増減配列の要素を1だけ。あなたの仕事は、配列をイコライズすることです。つまり、いくつかのmoveを実行して、配列のすべての要素を等しくします。しかし、それだけでは十分ではありません!また、できるだけ少ない動きをしたいです。 入力 整数の空でない配列 aaa 必要に応じて、長さの。aaa 出力 配列aを均等化するために必要な移動の最小数。aaa ルール 標準ルールのための有効な応募、I / O、抜け穴適用されます。 これはcode-golfなので、最短の解決策です(バイト単位)が優先されます。いつものように、ゴルフ言語のとてつもなく短い解決策で、選択した言語で長い回答を投稿することを妨げないでください。 これはルールではありませんが、ソリューションをテストするためのリンクとそれがどのように機能するかの説明が含まれていれば、あなたの答えはよりよく受け取られます。 例 Input --> Output [10] --> 0 [-1, 0, 1] --> 2 [4, 7] --> 3 [6, 2, 3, 8] --> 9 [5, 8, 12, 3, 2, 8, 4, 5] --> 19 [1,10,100] --> 99

12
放火犯の子守Findを探す
放火犯が町を歩き回って、非常に特定のパターンに従って犠牲者を選ぶことを想像してください(あるいは、庭の周りを飛んで、非常に特定のパターンに従って花粉を取るために花を選ぶ蜂を想像してください)。町がN×N行列であるとします。ここで、Nは2以上の整数です。放火犯は左上隅から開始し、家の前にM個のスポットを順番に設定します(Mは現在いる家の数です)。各火災の後に移動する方向を順番に変更します。東⟶南⟶西⟶北⟶東⟶南...など。子守唄放火犯のMは、町を出るようにするMの値です(つまり、憎むべきことを止める前に最後に訪れる家)。これは例で理解しやすい方法です。たとえば、次のマトリックスをご覧ください。 3 2 3 2 7 3 1 4 1 6 2 5 3 1 1 4 4 3 2 4 1 1 1 1 1 左上隅から開始するので、M = 3(X放火犯の現在位置と前位置をマークします): X 2 3 2 7 3 1 4 1 6 2 5 3 1 1 4 4 3 2 4 1 …

30
遅延ドロップソートを実装する
この課題は、すでにドロップソートについて説明しています。しかし、私はちょっと怠け者だと私は本当に私の唯一の配列は、もう少しソート以前よりもする必要があり、それはソートする必要はありませんすべての方法を。 ドロップソートでは、その前の要素よりも小さいすべての要素をドロップします。レイジードロップソートでは、厳密に先行する要素よりも小さい要素をすべて削除します。 以下に例を示します。次の配列を検討してください。 8 6 9 9 7 2 3 8 1 3 前の要素よりも小さい要素をすべてマークしましょう。 8 6 9 9 7 2 3 8 1 3 ^ ^ ^ ^ どちら3もマークされていないことに注意してください8。それらはすべて、左側の単一の要素よりも大きくなっています。 アルゴリズムを完了し、マークされた要素を削除すると、次のようになります。 8 9 9 3 8 3 それは基本的にもっとソートされているように見えます。ちょっと。私は怠け者。 あなたがすでに推論したかもしれないあなたの仕事は、このアルゴリズムを実装することです。 入力は1〜9の少なくとも1つの正の整数の配列であるため、数字のストリングも使用できます。 これはcode-golfで、最少バイトが勝ちます! 追加のテストケース: 1 1 1 2 3 1 2 3 5 …

29
回転合計
入力として正の整数を含む正方行列を取得し、行列の「回転和」を計算します。 回転合計: 元の行列と同じ行列を90、180、270度回転させた合計を取ります。 マトリックスが次のとおりであると仮定します。 2 5 8 3 12 8 6 6 10 回転した合計は次のようになります。 2 5 8 8 8 10 10 6 6 6 3 2 3 12 8 + 5 12 6 + 8 12 3 + 6 12 5 = 6 6 10 2 3 6 8 5 …

30
N番目の違い
数学では、与えられた関係のタイプ(線形、二次など)を把握する1つの方法は、差を計算することです。これを行うには、対応するx値間のギャップが同じy値のリストを取得し、その上の数値からそれぞれを減算し、前のリストより1つ短い数値のリストを作成します。結果のリストが完全に同一の数値で構成されている場合、関係には1の差があります(線形です)。同一でない場合は、新しいリストでプロセスを繰り返します。それらが現在同一である場合、関係には2の差があります(2次です)。それらが同一でない場合は、それらが同一になるまでこのプロセスを続行します。たとえば、x値を増分的に増やすためのy値[1,6,15,28,45,66]のリストがある場合: First Differences: 1 6 1-6 =-5 15 6-15 =-9 28 15-28=-13 45 28-45=-17 66 45-66=-21 Second differences: -5 -9 -5+9 =4 -13 -9+13 =4 -17 -13+17=4 -21 -17+21=4 As these results are identical, this relation has a difference of 2 あなたのタスク: 入力として整数の配列が与えられると、上で説明したように、配列によって記述された関係の差を返すプログラムまたは関数を書きます。 入力: 整数の配列。長さは1より大きい場合があります。 出力: 入力によって記述された関係の差を表す整数。 テストケース: Input => …

21
頻度によるリストのグループ化
整数のリストが与えられたら、最も最初に出現する要素をグループ化し、次にリスト内の各一意の要素が一度グループ化されるまで、2番目に多くの要素をグループ化します。 例: 入力: [1,2,3] 出力: [[1,2,3]] 入力: [1,1,1,2,2,3,3,4,5,6] 出力: [[1],[2,3],[4,5,6]] 入力: [1,1,1,4,5,6,6,6,7,7,8,8,8,8,8,8,8,9,5,6,5,6,5,6,5,6,-56] 出力: [[6, 8],[5],[1],[7],[9,4,-56]] 入力: [] 出力: [] 入力: (empty input) 出力: ERROR/Undefined/Doesn't matter ルール グループ化は、最大頻度から最小頻度まで行わなければなりません。 グループ化の内部順序は任意です(EGの例3が[8,6]代わりに持つことができます)。 これはcode-golfであり、バイト数が最も少なくなります。 関連する リストの個別の要素を頻度で降順に並べ替えます

24
整数がキューに加わるとき
前書き キューは、要素は抽象データ型である前部に添加(エンキュー)及び背面から除去(デキュー)。これは、FIFO(先入れ先出し)原理とも呼ばれます。 例で最もよく示されています。 チャレンジ 所与の非空含む配列正の整数と示す要素デキュー(元素を除去する)、出力キューの最終的なリストを。 Xこの例でデキューを示しているとしましょう。次のリストを見てみましょう。 [45, X, X, 37, 20, X, 97, X, 85] これは、次のキュー擬似コードに変換できます。 Queue Enqueue 45 -> 45 Dequeue -> Dequeue -> (dequeue on an empty queue is a no-op) Enqueue 37 -> 37 Enqueue 20 -> 20 37 Dequeue -> 20 Enqueue 97 -> 97 20 …

21
非ゼロとその近傍を保持する
Stack Overflowのこの質問から引用。@milesと@Dadaにも、いくつかのコーナーケースに対処するテスト入力を提案してくれてありがとう。 チャレンジ 整数値の配列が与えられた場合、ゼロ以外の値に挟まれていないゼロをすべて削除します。 同様に、エントリがゼロ以外の場合、またはエントリがゼロ以外の値にすぐに近い場合は、エントリを保持する必要があります。 保持されるエントリは、入力での順序を出力で維持する必要があります。 例 与えられた [2 0 4 -3 0 0 0 3 0 0 2 0 0] 削除する必要がある値には、x次のマークが付いています。 [2 0 4 -3 0 x 0 3 0 0 2 0 x] そして、出力は次のようになります [2 0 4 -3 0 0 3 0 0 2 0] ルール 入力配列が空の場合があります(そして出力も空でなければなりません)。 入力および出力形式は、通常どおり柔軟です:配列、リスト、文字列、または合理的なもの。 …

29
部分文字列合計セット
前書き この配列を見てみましょう:[3, 2, 4, 1, 1, 5, 1, 2]。 各要素には、合計する必要がある部分文字列の長さが表示されます。上記の配列の最初の要素を見てみましょう。 [3, 2, 4, 1, 1, 5, 1, 2] ^ 最初のインデックスの要素は3なので、開始位置と同じインデックスを持つ長さ3の部分文字列を取得します。 [3, 2, 4] 合計すると、これは9になるため、部分文字列合計セットの最初の要素は9です。 配列内のすべての要素に対してこれを行います。 3 -> [3, 2, 4] 2 -> [2, 4] 4 -> [4, 1, 1, 5] 1 -> [1] 1 -> [1] 5 -> [5, 1, …

29
リストを注文する
概要 整数のリストが与えられると、各整数がソートされたときに終わるインデックスを返します。 たとえば、リストがの場合、[0,8,-1,5,8]を返す必要があります[1,3,0,2,4]。2つ8のsは互いに相対的な順序を維持していることに注意してください(ソートは安定しています)。 別の言い方をすると、リスト内の各要素について、リスト内の要素の数を返します。選択した要素よりも小さいOR(選択した要素の前に要素ANDが表示される) インデックスは0(1ではなく)で開始する必要があります。編集:大きなプッシュバックがある場合、1ベースのインデックスを許可します。 テストケース: 0 -> 0 23 -> 0 2,3 -> 0,1 3,2 -> 1,0 2,2 -> 0,1 8,10,4,-1,-1,8 -> 3,5,2,0,1,4 0,1,2,3,4,5,6,7 -> 0,1,2,3,4,5,6,7 7,6,5,4,3,2,1,0 -> 7,6,5,4,3,2,1,0 4,4,0,1,1,2,0,1 -> 6,7,0,2,3,5,1,4 1,1,1,1,1,1,1,1 -> 0,1,2,3,4,5,6,7 1,1,1,1,1,1,1,0 -> 1,2,3,4,5,6,7,0

24
決められた配列の並べ替え
入力: 3つの整数を含む配列:0、1および2任意の順序(つまり[2, 0, 1]) そして、アルファベット文字(小文字と大文字の両方)と数字(つまりa1B2c3)のみを含む長さ2以上の文字列 出力: 配列に基づいて、文字列を並べ替えて出力します。 これはどのように作動しますか? アレイは、の順の優先順位を示しa-z、A-Zそして0-9、第一ビーイング0。第二の存在1; そして3番目の存在2。 文字列の個々の文字は、それに基づいて順序付けることができます。 例: アレイ: [2, 0, 1] 文字列: a1B2c3 配列に基づいて、順序の優先順位がであることがわかります0-9a-zA-Z。 それに基づいて、文字列を変換して出力できます123acB。 チャレンジルール: 配列には、0インデックス付き入力または1インデックス付き入力を使用するように選択できます。したがって、[3, 1, 2]1インデックス付き配列を使用する場合は、有効な入力でもあります。 文字列(入力と出力の両方)には有効な文字のみが含まれます:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789。 お使いの言語がアレイ(またはあなたがすることを選択した場合)をサポートしていない場合は、最初のパラメータ(すなわちのための文字列の代わりに配列を使用するのは自由です012、[0,1,2]など)。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターを持つ関数/メソッド、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 また、必要に応じて説明を追加してください。 テストケース: [2, 0, 1] & a1B2c3 -> 123acB [2, 1, 0] & aAaA909UuHWw9gh2 -> 02999AAHUWaaghuw …

24
リスト内の真の値の範囲を見つける
チャレンジ: ブール値のリストを受け入れ、Trueのすべての範囲を返す関数またはプログラムを作成します。 テストケース: f [F] = [] f [T] = [[0,0]] f [T,T,F,T] = [[0,1],[3,3]] f [F,T,T,F,F,T,T,T] = [[1,2],[5,7]] f [F,T,T,F,F,F,T,T,T,T] = [[1,2],[6,9]] f [T,T,F,F,F,T,T,T,T,T,T,T,T,T,T,F] = [[0,1],[5,14]] f [F,F,T,T,F,F,F,F,F,F,F,F,T,T,T,T,T,T,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,T] = [[2,3],[12,19],[33,54],[93,94]] ルール: 入力のエンコード方法(リスト、配列、文​​字列など)を選択できます。 出力は、リストのようなリストまたはそのような文字列としてエンコードする必要があるため、配列、リスト、タプル、行列、ベクトルなどが必要です。 ブール値は定数としてエンコードする必要がありますが、それ以外の場合は、T / Fから目的の定数への単純な変換が許可されます 編集:ランタイム中のevalまたは類似のISが許可されます。 入力がプログラム/関数にどのように渡されるかを説明し、テストケースの入力/出力を与えることを忘れないでください カウントされない目的の入力形式への変換 標準的な抜け穴は許可されていません 言語にこれを行う機能がある場合、許可されていません 私は自分の提出を受け入れません 編集:出力形式は柔軟です。リストなどを印刷しない場合は、範囲の値を1つの数字以外の文字で区切り、範囲も区切る必要があります。 得点: 言語に合わない場合を除き、スコアはバイト単位です(Pietのコーデルなど) 最低得点 入力と出力にはかなりの柔軟性がありますが、T / Fをすべての作業を行う関数に置き換えるソリューションは許可されていません。 …

30
リストを偶数インデックス部分と奇数インデックス部分に分けます
この質問に触発された: 偶数のインデックス番号が最初に表示され、奇数のインデックス番号が後に続くように、番号のリストを受け取り、並べ替えられたリストを出力する関数(または完全なプログラム)を作成します。数値自体の値は順序に影響を与えません-インデックスのみが影響します。すべてのインデックスはゼロベースです。 例えば: 入力: [0, 1, 2, 3, 4] 出力: [0, 2, 4, 1, 3] もう一つの例: 入力: [110, 22, 3330, 4444, 55555, 6] 出力: [110, 3330, 55555, 22, 4444, 6] あなたの言語が持っているリストに最も自然な表現を使用してください。複雑さに関する制限はありません(たとえば、一時リストの割り当ては問題ありません。インプレースで行う必要はありません)。 PS空のリストに対して機能するはずです(空の入力=>空の出力)。

18
はしごを組み立てる
前書き はしごを作りたいです。このために、私は廃品置き場から、穴の開いた2つの長いボードを清掃しまし​​た。これらの穴にステップを配置したいと思います。ただし、穴が均等に配置されていないため、ステップが少し不安定になり、それらに必要なロッドの量を見積もることが難しくなります。あなたの仕事は私のために計算をすることです。 入力 入力は、2つのボードを表す整数の配列として与えられる2ビットのベクトルです。A 0は、穴のない1オード(距離の任意の単位)1のセグメントを表し、aは、単一の穴のある1オードのセグメントを表します。配列の長さは異なり、1sの数も異なりますが、空にはなりません。 はしごを次のように構築します。まず、2つのボードを正確に1オード離して配置し、左端を揃えます。インデックスごとに、最初のボードのth穴と2番目のボードiのith穴の間の距離を測定し、iロッドを切断して、2つの穴の間に取り付けます。いずれかのボードの穴がなくなると停止します。 出力 出力は、ステップに必要なロッドの合計量であり、オードで測定されます。出力は、少なくとも6桁の有効数字まで正しいはずです。 例 入力[0,1,1,0,1,1,1,1,0,0]とを考慮してください[1,0,0,1,1,1,0,0,1]。結果のはしごは次のようになります。 このラダーのロッドの全長は7.06449510224598オードです。 ルール 関数または完全なプログラムのいずれかを作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース [0] [0] -> 0.0 [0] [1,0] -> 0.0 [1,0,0] [1,1,1,1,1] -> 1.0 [0,1,0,1] [1,0,0,1] -> 2.414213562373095 [0,1,1,0,1,1,1,1,0,0] [1,0,0,1,1,1,0,0,1] -> 7.06449510224598 [1,1,1,1,1] [0,0,1,1,0,1,0,0,1] -> 12.733433128760744 [0,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,0,1,1,0,0,0,1,0] [0,0,1,1,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1] -> 20.38177416534678

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