タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

1
これはカルバン番号の候補ですか?
このチャレンジは、Generate Dennis Numbersと同じ精神で、 Legendary Challenge Writer™であるCalvin's Hobbies(現在はHelka Hombaに改名)へのオマージュ です。 カルビンはPPCGに非常に印象的な貢献者であり、全体で6番目に評判が高く、おそらく間違いなく私たち全員のスキルを書く最高の挑戦です。ただし、もちろん、この課題では、彼のユーザーIDに注目します。 26997は最初はあまりおもしろくないかもしれません。実際、 いくつかの点でほとんど興味深いものです。たとえば、次の26997 mod <n>特定の値のチャートは次のnとおりです。 n | 26997 % n ----+----------- 3 | 0 4 | 1 5 | 2 6 | 3 7 | 5 :( 8 | 5 9 | 6 10 | 7 ただし、26997は、で表現できる数少ない数字の1つです。ここで、整数は0以上です。(n * 10)n - nn …

6
ピザは公正ですか?
この質問は触発され、逆のです、この1。 デニス(E)、ドアノブ(D)、マーティン(M)、クリス(C)がピザを注文しました。長方形のピザは正方形のピースに分割され、各ピースには意図した食べる人がマークされています。 各文字の0個以上で構成される長方形のピザを与えて、次のことを決定するプログラムまたは関数を作成します。 各人物の各スライスはパス接続されています。これは、同じ文字はすべて互いに直接隣接する必要があることを意味します(斜めの接続はありません)。 1人あたりのスライス数はすべて同じです。 指定されたピザが公正かどうかを示すオプションの末尾の改行を使用して、真偽値を出力する必要があります。 有効なテストケース: DDDDDDDDDDDDMCCCCCCCCCCC DEEEEEEEEEEDMMMMMMMCCCCC DEEEEEEEEEEDMMMCCCCCCCCC DEEEEEEEEEEDMMMMMMMMCCCC DDDDDDDDDDDDMMMMMMMMMMMC DEMC DD EE MC MC EEDDMMMCCC EEEDDDMMCC 無効なテストケース: EDM EDMCCMDE DDDDDDDDDDDDMCCCCCCCCCCC DEEEEEEEEEEDMMMMMMMCCCCC DEEEEEEEEEEMDMMCCCCCCCCC DEEEEEEEEEEDMMMMMMMMCCCC DDDDDDDDDDDDMMMMMMMMMMMC DDMMEECC DMMEECCC バイト単位の最短コードが優先されます。

3
任意のアイスキューブトレイの充填
このスペースとXのグリッドが、奇妙な形の空の角氷トレイの断面を表していると仮定します。 X X X X X X XX X XX X XXXXXX XXXXXXXXXXXXX のない列はX、水を保持できないトレイの穴または隙間を表し、無限の容量の流しに流れ込みます。グリッドの左端または右端から落ちる水も、この無限のシンクに流れ込みます。 蛇口をトレイの上に置き、すべてのコンパートメントの水位が安定するまで水で満たす場合、満たされる正確なコンパートメントは、水流がトレイの上に配置された正確な場所に依存します。(はねのない、薄くて安定した水の流れを想定してください。) たとえば、蛇口Fが一番左のグリッド列の上にある場合 F X X X X X X XX X XX X XXXXXX XXXXXXXXXXXXX 水はXその列の最上部に落ちて左右に広がり、左半分が下の流しにこぼれ、右半分が2×1コンパートメントを満たします。コンパートメントが満たされると、水流の右半分は流し台に流れ込むだけで、どこでも水位は本質的に安定しています。 蛇口をオフにすると、トレイは次のようになります:(~水として) X X X X~~X X XX X XX X XXXXXX XXXXXXXXXXXXX 同様に、蛇口を次のように配置すると: F X X X X X X …

4
アーガイルアスキーアート
正の整数を取り込むプログラム(または関数)を作成します。 入力がの場合、1横に隣接する2つのダイヤモンドを印刷(または返し)し、それぞれの辺の長さを1スラッシュにします。 /\/\ \/\/ N1より大きいすべての入力についてN-1、隣接するダイヤモンドの各ペアの出力を調べて、2つの隣接するダイヤモンドの辺の長さの合計である辺の長さの間に新しいダイヤモンドを挿入します。この新しいダイヤモンドパターンを印刷(または返却)します。 2入力がの場合、出力を見て、12つの隣接するダイヤモンドがあり、両方とも辺の長さが1であることがわかります。そのため、それらの間に辺の長さ2(1 + 1)のダイヤモンドを挿入します。 /\ /\/ \/\ \/\ /\/ \/ 入力3について2は、2つの隣接するダイヤモンドのペアの間に辺の長さが3(1 + 2および2 + 1)の2つのダイヤモンドの出力を見て追加します。 /\ /\ / \ /\ / \ /\/ \/ \/ \/\ \/\ /\ /\ /\/ \ / \/ \ / \/ \/ パターンを続けると、出力4は次のようになります。 /\ /\ /\ / \ / \ /\ …

18
右揃えのテキスト
あなたの仕事は、文字列の入力と数字を受け取り、文字列を右に揃えて、テキストの幅を数字にすることです。行が長すぎる場合は、その行を分割して残りを次の行に置き、不要になるまで繰り返します。行が幅より短い場合は、スペースで埋めます。複数の改行が発生する可能性があり、他の単一文字と同様に処理する必要があります。 たとえば、文字列 Programming Puzzles & Code Golf そしてその数5は以下を生成します: Progr ammin g Puzzl es & Code Golf 一方、同じ文字列と数値で10は次のようになります。 Programmin g Puzzles & Code Golf 文字列 a b そして、5という数字は以下を生成します: a <-- note the 5 spaces b 最短のコードが勝ちます!
27 code-golf  string 

6
六角形の迷路の時間!
別の迷路チャレンジの時間ですが、あなたが知っているようにではありません。 このチャレンジのルールは、ほとんどの迷路チャレンジとは少し異なります。タイルタイプは次のように定義されます。 S:迷路の開始位置 E:取得しようとしている場所 0:交差できない壁 +:横断できる床 6つの方向のいずれかで移動できます:左上、右上、左、右、下左、または右下。 \ / -S- / \ 迷路はラップしません。目標は、から取得する最短パス文字列を見つけるSことEです。 入力: 入力は、示されている迷路のようなスペースで区切られた線です。後続スペースは行に続きません。 出力: 文字列R、LおよびF場所 R 右(時計回り)に60度回転します L 左(反時計回り)に60度回転します F あなたが指している方向に1スペース移動します 指さし始める left-up 最短パスは、訪問された位置の数ではなく、生成された文字列の長さによってカウントされます。プログラムは、ソリューションとして最短パスを印刷する必要があります。 迷路が解決できない場合は、出力する必要がありますInvalid maze!。 (>>>出力です) 0 0 0 0 0 + 0 + 0 0 0 0 + + 0 0 + 0 + 0 + …

2
Vim-コメント行をコメント文字で囲む
今日、私はコードのセクションを次のように定義したいことが多いことに気付きました。 #################### # Helper Functions # #################### しかし、それは面倒です。次のような行があると仮定します。 # Helper Functions # vimそれを包むための最短のキーストロークのセットは何#ですか?このチャレンジでは、Shiftはキーストロークとしてカウントされません。 テストケース: Input: "#test test test#" Output: ################ #test test test# ################ Input: "#this is a nice block comment#" Output: ############################## #this is a nice block comment# ############################## Input: "# s p a c e s must be …
27 code-golf  vim  comment 

1
ASCIIスコア
一時フォルダの深さを掘り下げてみると、ピアノの作曲が見つかります。あいにく、これらの楽曲は音名と長さだけで書かれており、テキスト端末にしかアクセスできません。したがって、あなたの仕事は、コンポジションをASCIIアートとして表示するプログラムを書くことです。 入力 プログラムは、入力として2つの文字列を受け入れる必要があります。最初の文字列は、高音部記号(ト音記号付き)の音符を表し、2番目の文字列は、下部の譜表の音符を表します。 メモは科学的なピッチ表記で渡されます。トップスタッフのノートはいつもの間になりますC4し、C6包括的。下のスタッフのノートはいつもの間になりますC2し、C4包括的。 各ノートには、のいずれかになります期間、付属しています:1、2、4、8。これらはそれぞれ、音符全体(半音)、半音(最小)、4分音符(かぎ針編み)、および8分音符(四分音符)を表します。 その他の期間のノートは入力に表示されません。 入力内の音符と音符の分離方法、および各音符と他の音符の分離方法は、お客様の裁量によります。以下は、トップスタッフのサンプル入力です。 E4/4 A4/8 C#5/8 E5/2 ここでは、音符はスペースで区切られ、音符は音符とスラッシュで区切られています。これらのデリミタは固定されておらず、変更するか完全に省略するかを選択できます。 各譜表に少なくとも1つのメモがあると想定できます。入力に休符はありません。 出力 あなたのプログラムは、次の説明に従って、スコアをASCIIアートとして出力します。 音部記号は、出力の左側にある最初のものでなければなりません(2つの譜表間の距離は変更しないでください)。 ^ | | ------|/---- / -----/|----- / | ---/--__---- | / \ ---\-\|-|--- \ | / ------|----- | \_/ ----___----- / \ | ---\---|---- | | -------/---- / -----/------ ------------ 音符が譜表の中央線より下にある場合、音符のステム(円の隣の垂直線)は上を向いている必要があります。音符が譜表の中央線より上にある場合、下を向いている必要があります。音符が中央の行にある場合、ステムはどちらの方向を向いてもかまいません。(これに対する唯一の例外はボーナスであり、後述の8分音符を接続するときに発生します)。幹は円の上下の線から始まり、高さのある線でなければなりません6。 音符全体を除くすべての種類の音符には語幹があります。8分音符のフラグは、異なる行にある2つのスラッシュで表されます(下の例を参照)。 (4分音符と8分音符の)音符の先頭は、で表され(@)ます。空の音符の頭(半音と全音)は、( )ます。 …

10
フック長さ製品
A ヤング図は左詰め行及び上部詰め列のボックスの配置です。各ボックスについて、その上とその左のすべてのスペースが占有されます。 XXXXX XXX XXX X ボックスのフックの長さは、その行の右側にあるボックスの数であり、その列の下にあるボックスの数であり、それ自体も一度カウントします。たとえば、2番目のボックスのフックの長さは6です。 X**** X*X X*X X すべてのフックの長さは次のとおりです。 86521 532 421 1 ここでの目標は、フックの長さの積を計算することです8*6*5*2*1*5*3*2*4*2*1*1 = 115200。 (この式が重要な理由に興味がある場合は、フックの長さの式について読んでください。) 入力:行サイズのコレクション、[5,3,3,1]またはのような数字として、[[1,1,1,1,1], [1,1,1], [1,1,1], [1]]またはのような繰り返される単項記号として"XXXXX XXX XXX X"。リストは、必要に応じて昇順または降順で並べ替えることができます。リストは空ではなく、正の整数のみが含まれます。 出力:フックの長さの積。正の整数です。整数オーバーフローやランタイムについて心配する必要はありません。 特に若いダイアグラムまたは整数パーティションを扱うビルトインは許可されていません。 テストケース: [1] 1 [2] 2 [1, 1] 2 [5] 120 [2, 1] 3 [5, 4, 3, 2, 1] 4465125 [5, 3, …

25
文字列の反転と反転
文字列の反転と反転 チャレンジ この挑戦で。入力を出力または返す、反転および反転するプログラムを作成します。 まず、各文字をその文字コードに変換する必要があります。次に、それをbase-2に変換する必要があります。次に、その文字列を逆にする必要があります。その後、文字列を反転する必要があります(1-> 0および0-> 1)。最後に、それを基数2に変換してから、文字に変換し直す必要があります。文字が印刷不能になる場合は、オプションで出力できますが、削除する必要はありません。 H -> 72 -> 1001000 -> 0001001 -> 1110110 -> 118 -> v e -> 101 -> 1100101 -> 1010011 -> 0101100 -> 44 -> , l -> 108 -> 1101100 -> 0011011 -> 1100100 -> 100 -> d l -> 108 -> 1101100 …

7
ダイヤモンドタイルのスケールアップ
たとえば、次のように、通常の六角形にダイヤモンドを並べることができます。 ______ /_/_/\_\ /_/\_\/\_\ /\_\/_/\/_/\ \/_/\_\/_/\/ \_\/_/\_\/ \_\_\/_/ 上記のサイズのタイルを考慮します1(ダイヤモンドの側面は1つ/または\それぞれで作られているため)。サイズの同じタイリングは次の2ようになります。 ____________ / / /\ \ /___/___/ \___\ / /\ \ /\ \ /___/ \___\/ \___\ /\ \ / /\ / /\ / \___\/___/ \/___/ \ \ / /\ \ / /\ / \/___/ \___\/___/ \/ \ \ / /\ \ / …

24
これをすばやく並べ替えます!
まあ... 並べ替えがタグ付けされた59(現在60)の質問がありますが、簡単なクイックソートはありません。 修正する必要があります。 クイックソートに不慣れな方のために、Wikipedia- 配列から、ピボットと呼ばれる要素を選択します。 ピボットより小さい値を持つすべての要素がピボットの前に来るように配列を並べ替え、ピボットより大きい値を持つすべての要素がその後に来るようにします(等しい値はどちらの方向にも進むことができます)。この分割後、ピボットは最終位置になります。これは、パーティション操作と呼ばれます。 上記の手順を、値の小さい要素のサブ配列に、値の大きい要素のサブ配列に個別に再帰的に適用します。 ルール ルールは簡単です: 選択したプログラミング言語で数値クイックソートを実装します。 ピボットは、ランダムに選択するか、中央値3(1番目、最後、および中間要素)で選択する必要があります。 プログラムは、完全なプログラムまたは機能になります。 STDIN、コマンドライン引数、または関数パラメーターを使用して入力を取得できます。文字列入力を使用する場合、入力はスペースで区切られます。 入力には、10進数と負の値が含まれる場合があります。ただし、重複はありません。 STDOUTに出力するか、関数から戻ることができます。 組み込みのソート(またはソート関連)機能や標準の抜け穴はありません。 リストの長さは任意です。 ボーナス1:長さ<= 5のリストまたはサブリストでは、挿入ソートを使用して少し速度を上げます。報酬:-15%。 ボーナス#2:言語が並行性をサポートしている場合、リストを並列に並べ替えます。サブリストで挿入ソートを使用している場合、最終的な挿入ソートは並列である必要はありません。組み込みのスレッドプール/スレッドスケジューリングが許可されます。報酬:-15%。 注:3人の中央値は一部の人々を混乱させていたので、ここに説明があります(再度)ウィキペディア: ピボットのパーティションの最初、中央、最後の要素の中央値を選択する 得点 これはcode-golfです。基本スコアはバイト単位です。ボーナスを1つ獲得した場合は、その数を15%引きます。両方入手した場合は、30%オフにしてください。それは本当に売り込みのように聞こえます。 これは、全体の最短回答を見つけることではなく、各言語で最短の回答を見つけることです。 そして今、リーダーボードスニペットの恥知らずなコピー。 リーダーボード この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からカタログを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes Nは提出のサイズです。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 ## Perl, 43 + 2 (-p flag) = …

3
Squarefinder –正四角形の配置
平面に描かれた長方形の束を想像してください。各長方形の頂点は整数座標にあり、辺は軸に平行です。 長方形は、平面をいくつかのばらばらの領域に分割します。これらの領域は、下の赤と青の色です。 あなたの目標は、そのような完全な正方形の領域の数を見つけることです。上記の例では、次の3つがあります。 中央の大きな正方形は、単一の領域ではないため数えられず、代わりにいくつかの小さなばらばらの領域で構成されていることに注意してください。 入力 このチャレンジのために関数または完全なプログラムを書くことができます。 入力は、平面内の長方形を4n定義する非負の整数になりますn。各長方形は、2つの対向する頂点で表されます。たとえば4 9 7 8、対向する頂点(4, 9)とで長方形を表し(7, 8)ます。この長方形は7 8 4 9またはとしても表されることに注意してください4 8 7 9。 正確な入力形式は、(例えば、スペースで区切られた文字列、カンマ区切りの文字列、整数の単一のアレイ、座標タプルのリストなど)柔軟ですが、してください合理的であるとあなたのポストにあなたのコードを実行する方法の例を与えます。入力を並べ替えることはできません。 簡単にするために、2つのエッジがオーバーラップしないことを想定できます。これには、頂点でのオーバーラップが含まれます。特に、これは、2つの長方形が端から端または角から角に触れず、長方形の面積がゼロでないことを意味します。 出力 プログラムは、単一の整数(正方形の領域の数)を出力または返す必要があります。 得点 これはコードゴルフであるため、最も少ないバイト数のコードが優先されます。 テストケース 入力: 0 0 5 5 6 8 10 4 14 16 11 13 19 1 18 2 出力: 4 これは、単純に4つの独立した正方形です。 入力: 2 1 3 11 …

7
安心できるたとえ
ここのかなりの数の人々は、おそらく熱心なXKCDリーダーです。だから、私はあなたに、ミーガンが簡単にできることをするように挑戦するだろうと考えています。コンピューターが決してできないことについて、何千もの安心できるたとえを生成するスクリプトを作成します。 あなたのスクリプト 任意の言語で書くことができます コードゴルフが必要 stdin吐き出されるたとえ話の数を入力する必要があります(これに相当する言語でMAX_INT)。 ランダムに生成された多くのたとえを出力します。 たとえは次のとおりです 〜で始まる 'Computers will never ' 次に、プログラムを最適化するために自由に選択できる16のユニークな英語動詞の1つですが、とを含める必要があります。code-golfunderstand 次に、プログラムを最適化するために自由に選択できる16個のユニークな英語の名詞の1つですが、とを含める必要があります。a saladan octopus 次に、プログラムを最適化するために自由に選択できる16のユニークな英語句の1つですが、とを含める必要があります。for funafter lunch 改行(\nまたは同等の)文字で終わる したがって、たとえば、入力がの2場合、有効な出力は次のようになります Computers will never code-golf a salad for lunch Computers will never hug a tree in vain プログラムのサイズは、文字ではなくバイト単位でカウントされます(したがって、ユニコードの意味がありません)。標準の抜け穴は許可されていません。 これが私の最初の挑戦なので、明らかな変更を加える必要がある場合はコメントしてください。 編集:辞書の「圧縮」を促進するために、バイト数から辞書のサイズを差し引くことを考えています。これがリモートで実行可能かどうかは、将来の回答から確認します。もしそうなら、あなたはボーナスを頼りにすることができます。

25
次の1スパース2進数を見つける
正の整数Nは、バイナリ表現の2つの連続する1の間に少なくともK 0 がある場合、K疎です。 したがって、1010101の数値は1のスパースですが、101101はそうではありません。 あなたの仕事は、与えられた入力番号の次の1スパース番号を見つけることです。たとえば、入力が12(0b1100)の場合、出力は16(0b10000)であり、入力が18(0b10010)の場合、出力は20(0b10100)です。 最小のプログラムまたは関数(バイト単位)が勝ちます!標準の抜け穴は許可されていません。

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