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

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

30
最初の1になる(最初のTruthyのみを残す)
イントロ 毎年、Dyalog Ltd.は学生コンテストを開催しています。そこでの課題は、優れた APLコードを書くことです。これは、今年の8番目の問題の言語に依存しないコードゴルフ版です。 コンテストの元の著者から、このチャレンジをここに投稿する明示的な許可があります。提供されたリンクに従って作成者に連絡することにより、気軽に確認してください。 問題 ブール*リストを指定すると、最初のTruthyの後のすべてのTruthiesを「オフ」にします。 真実はない?問題ない!変更せずにリストを返すだけです。 例 [falsy,truthy,falsy,truthy,falsy,falsy,truthy] → [falsy,truthy,falsy,falsy,falsy,falsy,falsy] [] → [] [falsy,falsy,falsy,falsy] → [falsy,falsy,falsy,falsy] *あなたのすべての真実は同一でなければならず、あなたのすべての偽りは同一でなければなりません。これには出力が含まれます。

30
既知の既知のものがあります
元米国国防長官のドナルド・ラムズフェルドは、「既知の知人」というフレーズを有名にした。ここでは、彼の発言を4行のスタンザに要約します。 具体的には、次のテキストを出力します。 known knowns known unknowns unknown knowns unknown unknowns 大文字と小文字は区別されません(たとえば、大文字Known unKnownsで結構です)。また、単一の末尾の改行を使用できますが、他の形式の変更は許可されていません。これは、単語間の単一のスペース、および行間のLF(59バイト)またはCR/LF(62バイト)を意味します。 ルール 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。

18
この文字列をいくつまでカットできますか?
実際の行で前後に折り畳まれた文字列(「ロープ」のように、「文字の束」のようにではない)を考えてください。文字列の形状を、通過するポイントのリストで(順番に)記述できます。簡単にするために、これらのポイントはすべて整数であると仮定します。 例として[-1, 3, 1, -2, 5, 2, 3, 4]考えます(各エントリがフォールドを意味するわけではないことに注意してください): 垂直方向に沿って延びる文字列は、視覚化のみを目的としています。文字列がすべて実際の線上に平らになっていると想像してください。 ここで問題があります:この文字列は、1つのカット(上記の写真では垂直でなければなりません)でカットできるピースの最大数です。この場合、答えは6で、2との間にカットがあり3ます: あいまいさを避けるため、切り取りは非整数位置で実行する必要があります。 挑戦 文字列が折り返される整数位置のリストが与えられた場合、非整数位置での単一カットで文字列を切り取ることができるピースの最大数を決定します。 完全なプログラムまたは関数を作成できます。STDIN、コマンドライン引数、プロンプトまたは関数パラメーターを介して入力を受け取ることができます。出力をSTDOUTに書き込んだり、ダイアログボックスに表示したり、関数から返すことができます。 リストは便利なリスト形式または文字列形式であると想定できます。 リストには、少なくとも2から100までのエントリが含まれます。エントリは整数、範囲内の各あろう-2 31 ≤P I <2 31。2つの連続したエントリが同一ではないと想定できます。 コードは、合理的なデスクトップPCで10秒未満でそのような入力(以下のテストケースを含む)を処理する必要があります。 テストケース すべてのテストケースは、単に入力の後に出力が続きます。 [0, 1] 2 [2147483647, -2147483648] 2 [0, 1, -1] 3 [1, 0, -1] 2 [-1, 3, 1, -2, 5, 2, 3, 4] 6 [-1122432493, -1297520062, …

30
スタックの実装
まだこれがないとは信じられません。これはプログラミングで最も重要なデータ構造の1つですが、コードゴルフで実装するのに十分なほどシンプルです。 チャレンジ あなたの仕事は、数字をプッシュしたりポップしたりできるスタックを実装することです。実装をテストし、I / Oをシンプルに保つために、次のセットアップを使用します。 入力は、負でない整数のリストになります 正の整数はすべてを示し、はすべて示し -最上部の要素を破棄します。push( n ) 0 pop()nnnpush( n)push(n)\texttt{push(}n\texttt{)}000ポップ()pop()\texttt{pop()} 出力は結果のスタックになります 例 たとえば、が与えられた場合:[ 12 、3 、0 、101 、11 、1 、0 、0 、14 、0 、28 ][12,3,0,101,11,1,0,0,14,0,28][12,3,0,101,11,1,0,0,14,0,28] 12301011110014028[ 12 ][ 3 、12 ][ 12 ][ 101 、12 ][ 11 、101 、12 ][ 1 、11 、101 、12 ][ 11 、101 …

16
「レイジーソート」を実装する
私は数字のリストをソートすることになっていますが、私はとても怠け者です。すべての数字が昇順になるまですべての数字を入れ替える方法を考えるのは本当に難しいので、新しいリストがソートされることを保証する独自のアルゴリズムを思いついた¹。仕組みは次のとおりです。 サイズNのリストの場合、N-1回の反復が必要です。各反復で、 N番目の数値がN + 1番目の数値よりも小さいかどうかを確認します。そうである場合、これらの2つの数値は既にソートされているため、この反復をスキップできます。 そうでない場合は、最初のN個の数字を順番にデクリメントして、これら2つの数字が順番どおりになるまで続ける必要があります。 具体例を見てみましょう。入力があったとしましょう 10 5 7 6 1 最初の反復で、10と5を比較します。10は5よりも大きいため、小さくなるまでデクリメントします。 4 5 7 6 1 5と7を比較します。5は7より小さいので、この反復では何もする必要はありません。次のステップに進み、7と6を比較します。7は6より大きいため、最初の3つの数値を6未満になるまでデクリメントして、次のようにします。 2 3 5 6 1 ここで、6と1を比較します。ここでも、6は1よりも大きいため、最初の4つの数値を1より小さくなるまでデクリメントし、次のようにします。 -4 -3 -1 0 1 これで完了です!これで、リストは完全にソートされた順序になりました。さらに、さらに改善するために、リストをN-1回反復するだけで済みました。したがって、このアルゴリズムはO(N-1)時間でリストを並べ替えます。 今日の課題は、このレイジーソートを実装することです。プログラムまたは関数には、任意の標準形式の整数の配列が与えられます。この遅延ソートを実行し、新しい「ソート済み」リストを返す必要があります。配列が空になったり、整数が含まれたりすることはありません。 ここではいくつかの例を示します。 Input: 10 5 7 6 1 Output: -4 -3 -1 0 1 Input: 3 2 1 Output: …

25
配列のサーバーソート
チャレンジ 整数の空でない配列が与えられた場合、例えば: [5, 2, 7, 6, 4, 1, 3] 最初に、前のアイテムよりも大きいアイテムがない配列(つまり、非昇順配列)にそれを切断します。 [5, 2] [7, 6, 4, 1] [3] 次に、各配列を逆にします。 [2, 5] [1, 4, 6, 7] [3] 最後に、それらをすべて連結します。 [2, 5, 1, 4, 6, 7, 3] これは、プログラムの出力/関数が返すものでなければなりません。この手順を十分に繰り返すと、配列が完全にソートされます。 ルール 入力および出力は、任意の標準的な方法で提供され、適切な配列形式で行われます。 入力配列が空になることはありませんが、マイナスや重複が含まれる場合があります。 各整数の絶対値は常に2 31未満です。 テストケース うまくいけば、これらはすべてのエッジケースをカバーします: [1] -> [1] [1, 1] -> [1, 1] [1, …

30
配列をインクリメントする
正の整数の空でない配列が与えられた場合、次のように一度「インクリメント」します。 すべての配列要素が等しい場合、配列1の末尾にa を追加します。例えば: [1] -> [1, 1] [2] -> [2, 1] [1, 1] -> [1, 1, 1] [3, 3, 3, 3, 3] -> [3, 3, 3, 3, 3, 1] そうでない場合は、配列の最小値である配列の最初の要素をインクリメントします。例えば: [1, 2] -> [2, 2] [2, 1] -> [2, 2] [3, 1, 1] -> [3, 2, 1] -> [3, 2, …

30
数学指導の武器
前回、私は複製ではない簡単なものを思いついたとき、それは非常に難しいものになりました。ですから、今回はそれが実際に新人にも試せるものであることを願っています。 入力: 整数/小数の配列/リスト。(または、整数/小数の配列を表す文字列。) 出力: 数字をループし、次の5つの数学オペランドをこの順序で適用します。 追加(+); 減算(−); 乗算(*または×または·); 実数/電卓部門(/または÷); べき乗(^または**)。 (注:括弧で囲まれた記号は、明確化のために追加されたものです。プログラミング言語で数学演算に例とはまったく異なる記号を使用している場合、それはもちろん完全に受け入れられます。) リストの最後に達するまで続けて、合計の結果を出します。 チャレンジルール: 0(n ^ 0)によるべき乗は1になります(これはにも当てはまります0 ^ 0 = 1)。 0(n / 0)による除算のテストケースはないため、そのエッジケースについて心配する必要はありません。 配列に含まれる数値が1つだけの場合は、結果としてそれを返します。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターを持つ関数/メソッド、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 テストケース: [1,2,3,4,5] -> 0 -> 1 + 2 = 3 -> 3 - 3 = 0 -> 0 …

23
スカイラインをブラシストロークで覆う
負でない整数のスカイラインの高さリストが与えられた場合、それをカバーするために必要な連続した1ユニットの高さの水平ブラシストロークの数を答えます。 [1,3,2,1,2,1,5,3,3,4,2]として視覚化: 5 5 4 3 5334 32 2 53342 13212153342 9つのブラシストロークが必要です。 1 2 3 4 5555 66 7 88888 99999999999 例 [1,3,2,1,2,1,5,3,3,4,2] → 9 [5,8] → 8 [1,1,1,1] → 1 [] → 0 [0,0] → 0 [2] → 2 [2,0,2] → 4 [10,9,8,9] → 11

19
私のパイは二等分されましたか?
正の整数の空でないリストを取り込むプログラムまたは関数を作成します。"1 2 3 4"またはなどの合理的で便利な形式で入力されていると想定できます[1, 2, 3, 4]。 入力リストの数値は、円グラフ全体のスライスを表します。各スライスサイズは対応する数値に比例し、すべてのスライスは指定された順序でグラフの周囲に配置されます。 たとえば、次のパイ1 2 3 4は次のとおりです。 あなたのコードが答えなければならない問題は、円グラフが今までされてい二分しますか?つまり、円の一方の側から他方の側に完全に直線があり、対称的に2つに分割されていますか? あなたはする必要があり、出力truthyの少なくとも一つの二等分線と出力がある場合に値をfalsy何も存在しない場合、値。 で1 2 3 4例との二分がある4 1と2 3出力truthyであろうように。 ただし、入力の1 2 3 4 5場合は二等分線がないため、出力は偽になります。 追加の例 数値を異なる方法で配置すると、二等分線が削除される場合があります。 例2 1 3 4→偽: 入力リストに数字が1つしかない場合、パイは二等分されません。 例10→偽: 複数の二等分線が存在する場合があります。ゼロ以上である限り、出力は真実です。 例6 6 12 12 12 11 1 12→真実:(3つの二等分線があります) 視覚的に明らかではない場合でも、2分割が存在する場合があります。 例1000000 1000001→偽: 例1000000 1000001 1→真実: (円グラフを生成してくれたnces.ed.govに感謝します。) テストケース …
43 code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

10
ジグザジフ行列
JPEG標準は、圧縮アルゴリズムの一部として、交互の方向の対角線に沿って行列を展開してベクトルにします。 あなたのタスクは、マトリックス(必ずしも正方形ではない)を取り、展開された形で返すことです。例として: [1 2 3 4 5 6 7 8 9 1 2 3] 降るべきです [1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3] ルール 行列要素はより小さい正の整数であると仮定でき10ます。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 入力マトリックスは、便利で曖昧さのないネストされたリストまたは文字列形式で、または両方のマトリックス次元と共にフラットリストとして指定できます。(または、もちろん、あなたの言語がそれらを持っているなら、マトリックス型として。) 出力ベクトルは、任意の便利で明確なフラットリストまたは文字列形式にすることができます。 標準のコードゴルフ規則が適用されます。 テストケース [[1]] => [1] [[1 2] [3 1]] => [1 2 3 1] [[1 2 3 1]] …

30
アイデンティティマトリックスの構築
課題は非常に簡単です。入力が整数のn場合、n x n単位行列を出力します。単位行列は、1sが左上から右下に及ぶものです。作成した単位行列を返すまたは出力するプログラムまたは関数を作成します。出力は、2D配列、またはスペース/タブと改行で区切られた数値です。 入出力の例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, …

30
StringgnirtSStringgnirtSStringgnirtS
これは比較的簡単なチャレンジです。 長さNの文字列が与えられると、文字列を前方に、次に後方に、次に前方に、次に後方に...などN回出力します。たとえば、入力が Hello! 出力する必要があります: Hello!!olleHHello!!olleHHello!!olleH オプションで、末尾の改行を1つ出力することもできます。 あなたの提出物は、完全なプログラムまたは機能のいずれかである可能性があり、任意の合理的な形式で入力および出力を行うことができます。たとえば、STDIN / STDOUT、関数の引数と戻り値、ファイルなどからIOを取得できます。入力文字列は空ではなく、印刷可能なASCIIのみを含むと安全に想定できます。新しい文字列を1行で出力する必要があります。したがって、たとえば、最後の例の出力が Hello! !olleH Hello! !olleH Hello! !olleH これは有効な解決策ではありません! 以下に、さらにいくつかのテストケースを示します。 Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 リーダーボード これはコードゴルフの挑戦なので、標準的な抜け穴は禁止され、バイト単位の最短回答が勝ちます!ただし、これは特定の言語で最短の回答を得るための競争でもあります。Javaの答えがperlや他のゴルフ言語の答えに勝る可能性は低いですが、Javaの最短の答えを持つことは依然として非常に印象的です。したがって、このリーダーボードを使用して両方を表示できます すべての言語の中で最も短い回答、および 個々の言語での最短回答。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

30
少なくともhと少なくともh
入力 非負の整数のリスト。 出力 h少なくともhリスト内の数がより大きいか等しいような最大の非負整数h。 テストケース [0,0,0,0] -> 0 [12,312,33,12] -> 4 [1,2,3,4,5,6,7] -> 4 [22,33,1,2,4] -> 3 [1000,2,2,2] -> 2 [23,42,12,92,39,46,23,56,31,12,43,23,54,23,56,73,35,73,42,12,10,15,35,23,12,42] -> 20 ルール 完全なプログラムまたは関数のいずれかを記述することができ、匿名関数も許可されます。これはコードゴルフなので、バイト数が最も少なくなります。標準の抜け穴は許可されていません。 バックグラウンド h指数は、研究者の影響や生産性を捕捉することを目的と学界で使用概念です。ウィキペディアによると、研究者はhの科学論文を公​​開している場合、それぞれが少なくともh回他の記事で引用されている場合、インデックスhを持っています。したがって、この課題は、引用カウントのリストからh-indexを計算することです。 更新 うわー、すべてのラウンドで素晴らしい回答!私は最短のものを受け入れましたが、他の誰かがさらに短いものを思いついたら、それに応じて選択を更新します。 言語別の受賞者 以下に、言語別の受賞者の表を示します。これもまた、最新の状態に保つよう努めます。非負のスコアを持つすべての投稿を含めました。ここで間違えた場合は修正してください。 APL:@MorisZuccaによる7バイト Bash + coreutils:@DigitalTraumaによる29バイト C#:@ LegionMammal978による103バイト C ++:@ user9587による219バイト CJam:@nutkiによる 15バイト GolfScript:@IlmariKaronenによる13バイト Haskell:@proudhaskellerによる40バイト J:@ɐɔıʇǝɥʇuʎsによる12バイト Java:@Ypnypnによる107バイト JavaScript:@ edc65による48バイト Mathematica:@ kukac67による38バイト …

30
うさぎのようにスキップ!
任意の妥当な形式の非負整数のリストが与えられたら、それを繰り返し、あなたが踏むすべての整数が言う数の要素をスキップします。 これが実際の例です: [0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [] ^ First element, always include it [0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0] ^ Skip 0 elements [0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0, 1] ^ …

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